WWW.CODE-FATHER.COM ยินดีต้อนรับทุกๆท่าน

บทความทั้งหมด วิธีใช้งานโปรแกรม PHP CODE FATHER V.2016 Register - ลงทะเบียนโปรแกรม Contact Us - ติดต่อเรา About Us - เกี่ยบกับเรา รับเขียนเว็บ โปรเจ็ค PHP vs MySQL
ติดต่อเข้ามาได้เลยนะครับ ราคากันเอง ไม่เคยทิ้งงาน
งานแก้ งานด่วน งานเร่งสอบถามกันก่อนได้ครับผม...
107880Code Login Logout Php การทำระบบล๊อกอิน ล๊อกเอ้า และป้องกันการลักไก่ แบบละเอียดที่สุด 40740Code Send Email by PHP การส่งอีเมล์ด้วย พีเอสพี 43252Captcha Security Code PHP ใส่รหัสยืนยันก่อนโพสป้องกันการสแปมเว็บเราดีกว่า 73067Php Code Insert to Mysql การเพิ่มข้อมูลใหม่เข้าสู่ฐานข้อมูล 48953PHP CODE FATHER โปรแกรมสร้างโปรเจ็ค PHP + Mysql สร้างโค้ดโปรแกรม php mysql insert update add edit delete ง่ายๆ 35301Download Free Program Php Code Father V.2010 ดาวน์โหลดโปรแกรมฟรี 33188ดาวน์โหลดคู่มือ วิธีใช้งานโปรแกรม Php Code Father V.2010 61533Function Confirm Delete JavaScript การยืนยันก่อนลบข้อมูล ง่าย ๆ แต่สำคัญ 33109PHP Function ECHO Exit ฟังก์ชั่นเล็ก ๆ ที่ไม่ธรรมดา เครื่องมือ DEBUG ชั้นยอด 11412PHP CODE FATHER V.2010 ตัวเต็ม Full ขั้นตอนการสมัครและรายละเอียดการลงทะเบียนใช้งานโปรแกรม 85148Code Search PHP In Mysql Database By Fields การค้นหาข้อมูลในฐานข้อมูล ตามชื่อฟิลด์ 29856แก้ปัญหาการใช้งานฟังก์ชั่น substr ใน php ตัดข้อความภาษาไทยแล้วกลายเป็นภาษาต่างดาว 38852การดาวน์โหลดไฟล์+เทคนิคการตั้งชื่อไฟล์เป็นภาษาไทย PHP Code Download File Thai 48205PHP Function Date Thai การแปลงวันที่จาก ค.ศ. เป็น พ.ศ. วันที่แบบไทย ๆ สำหรับคนไทย 43695การแทรก PHP ใน Javascript เรื่องกล้วย ๆ ที่อาจจะต้องได้ใช้ 40388การแทรก Javascript ใน PHP เรื่องกล้วย ๆ ที่จำเป็นต้องรู้ 55723Php Code Upload File การอัพโหลดไฟล์และการตรวจสอบประเภทของไฟล์ภาพและอื่น ๆ 15728 Single Quote SQL Query Insert update แก้ปัญหาเวลาข้อมูลที่มีเครื่องหมายฟันเดี่ยว (single quote) แล้วไม่ได้ ไม่ผ่าน 14351การใช้งานฟังก์ชั่น substring() ใน javascript และการตรวจสอบจำนวนเงินกับการสั่งซื้ออัลบั้มออนไลน์ 126003คำสั่ง sql Select from Where ,Like ,Order By ที่จำเป็นต้องใช้และต้องใช้บ่อย ๆ 51876code update php to mysql database คำสั่งปรับปรุงข้อมูลในฐานข้อมูล 49228php function number_format ใส่จุดทศนิยมและเครื่องหมายคอมม่าให้ตัวเลข เงิน 43879ง่าย ๆ php auto id การสร้างเลขที่อัตโนมัติก่อนเพิ่มข้อมูลใหม่ 56430Code Redirect URL ด้วย php และ javascript การส่งผู้ใช้ไปหน้าที่เราต้องการ 55091ง่าย ๆ การทำวันที่แบบ List ให้เลือก วัน เดืือน ปี Select Option List Date 99481Code PHP Popup การป๊อปอัพหน้าต่างใหม่โดยใช้ Javascript 55436เทคนิค...การทำให้ Textbox กรอกหรือป้อนได้เฉพาะตัวเลขด้วย Javascript ง่ายๆ 46593Step 1 สร้างเว็บบอร์ดแบบบ้านๆ ด้วย PHP Webboard Script 38899เทคนิคการแสดงและซ่อน div, table และอื่น ๆ ด้วย Javascript Show and Hide DIV or TABLE 53304Step 2 ฐานข้อมูล สร้างเว็บบอร์ดแบบบ้านๆ ด้วย PHP Webboard Script 92298ปัญหาการแสดงผลตารางบน Internet Explorer เพี้ยน Table ie7 Error 23569การเชื่อมต่อฐานข้อมูล PHP+MySQL และวิธีแก้ไขปัญหาภาษาไทยผิดเพี้ยน กลายเป็นภาษาต่างดาว 38171วิธีแก้ปัญหา Internal Server Error ตอนรัน PHP กับ Apache Server MSQL 36669แปลงตัวเลขให้เป็นตัวอักษรภาษาไทย PHP Code Thai BathText 39690php easy calculator เครื่องคิดเลขอย่างง่าย บวก ลบ คูณ หาร 33481php easy calculator with Ajax เครื่องคิดเลขอย่างง่าย บวก ลบ คูณ หาร ภาคต่อ 187584ทำระบบล๊อกอินอย่างง่าย ด้วย PHP Login with Mysql Data Base 14439Step 3 โค้ดเว็บบอร์ดแบบง่าย ๆ พร้อมใช้งาน PHP Webboard Script 44553โค้ดการเลือกจังหวัด อำเภอ ตำบล ด้วย Ajax vs Code PHP select Provicne Umphur District 78082(ภาคต่อ แก้ไข อัพเดท) โค้ดการเลือกจังหวัด อำเภอ ตำบล ด้วย Ajax Code PHP select Provicne Umphur District with Edit 29249แก้ปัญหาPHP อัพขึ้น Host แล้วใช้งานไม่ได้ ไม่ส่งค่าตัวแปรแต่ที่เครื่อง localhost ใช้ได้ 165367PHP Random Number+String สุ่มตัวเลขตัวอักษรหรือตัวหนังสือไม่ซ้ำอย่างง่าย 129287โค้ดระบบแบ่งหน้า เพิ่ม ลบ แก้ไข และค้นหาตามรายชื่อฟิลด์ในหน้าเดียว 81789ติ๊กถูก Checkbox ยอมรับเงื่อนไขแล้วปุ่ม submit ขึ้นให้คลิก 20657แก้ปัญหา warning session_start() function.session-start cannot send session cache limiter 38105การใช้งานโปรแกรม php code father สร้างไฟล์ php แสดงข้อมูล เพิ่ม ลบ แก้ไข ค้นหา แบ่งหน้า 347718ฝึกเขียนโค้ด php โปรแกรมจำลองการถอนเงินจากตู้ ATM 204357สอนเขียน PHP แบบฮาๆ ตอน 1 ติดตั้งโปรแกรมพร้อมใช้งานเบื้องต้น 73729การแบ่งหน้า Boostrap Pagination PHP+MySql ง่าย ๆแบบจับมือทำ 29654Easy Code PHP Check Device โค้ดตรวจสอบประเภทอุปกรณ์ที่กำลังใช้งานเว็บไซต์ 11122สอน PHP สร้าง Webboard ตอน 1 สร้างฐานข้อมูล Mysql 14491สอน PHP Webboard ตอน#2 เชื่อมต่อฐานข้อมูล Connect Mysql DataBase 198907สอน PHP Webboard ตอน#3 ระบบล๊อกอิน Login เข้าสู่ระบบ 30502มาแล้วครับ PHP CODE FATHER V.2016 ร่วมกับ Boostrap 105870วิธีแก้ปัญหา Xampp เข้า phpMyadmin ไม่ได้ 562สอนเขียนโค้ด PHP แบบจับมือทำ Ep.1 เชื่อมฐานข้อมูลและแสดงผลข้อมูล 25744PHP เทคนิคการ Update ข้อมูลทีละหลาย ๆ รายการ 45299การติดตั้งและใช้งาน Appserv กับ Xampp ในเครื่องเดียวกัน
1# การดาวน์โหลดไฟล์+เทคนิคการตั้งชื่อไฟล์เป็นภาษาไทย PHP Code Download File Thai
การดาวน์โหลดไฟล์+เทคนิคการตั้งชื่อไฟล์เป็นภาษาไทย PHP Code Download File Thai
เนื่องจากว่าตัวผมเองได้รับทำโปรเจ็คเกี่ยวกับเว็บเพลง
ซึ่งต้องมีการให้สมาชิกสามารถดาวน์โหลดไฟล์เพลง (ซื้อเพลงนั่นเอง)

ปัญหาแรกที่เจอก็คือ ถ้าไฟล์นามสกุล .mp3, .txt, .pdf และอื่น ๆ
เมื่อทำลิงค์ที่ไฟล์นั้นโดยตรง เว็บบราวเซอร์ดันฉลาด เปิดให้เองซะงั้น โดยไม่ขึ้นให้ดาวน์โหลด
เช่น ถ้าเป็นไฟล์เพลง ก็จะเล่นเพลง และถ้าเป็นไฟล์ pdf ก็จะเปิดให้ดูไฟล์นั้น ๆ ไปเลย ซึ่งเราไม่ต้องการแบบนี้
เราต้องการให้คลิกแล้วสามารถดาวน์โหลดได้เลย...........
คิดว่าหลาย  ๆ คนที่เคยทำระบบให้ดาวน์โหลดไฟล์ คงจะได้เจอปัญหานี้กันมาแล้ว
*** โค้ดคำสั่ง ขอเอาไว้สรุปตอนท้ายทีเดียวเลยนะครับ


ปัญหาที่สอง คือ เมื่อดาวน์โหลดไฟล์ได้ตามต้องการโดยที่เว็บบราวเซอร์ไม่เปิดอ่านไฟล์ที่จะให้ดาวน์โหลดเหมื่อนปัญหาแรกได้แล้ว
แต่ชื่อไฟล์ที่ตั้งเอาไว้เอาไว้กลับผิด เพี้ยน หรือไม่ถูกใจเอาซะเลย เช่น ตั้งชื่อไฟล์เป็นรหัสเพลง หรือ รหัสเอกสาร (00002.mp3 หรือ 00001.pdf เป็นต้น)
หรือบางคนอาจจะตั้งชื่อไฟล์เป็นภาษาไทยเก็บไว้ที่เครื่องเซอร์เวอร์เลย แต่ตอนโหลดไฟล์ ก็ยังไม่ถูกต้องตามที่เราต้องการอยู่ดี
ปัญหานี้ผมเองก็เพิ่งเจอมากับตัวเอง หมาด ๆ สด ๆ ร้อน ๆ
หาวิธีอยู่ตั้งนาน จะไปแกะโค้ดที่ไหนก็ไม่มีให้ โค้ดตัวอย่างก็ยังอธิบายได้ไม่เคลียร์
ก็เลยงมเองอยู่ตั้งนาน กว่าจะได้ กว่าจะเจอ ก็เล่นเอาเกือบถอดใจกันเลยทีเดียว

ขออธิบายระบบที่ผมเก็บข้อมูลก่อนละครับนะครับ
ผมออกแบบฐานข้อมูลให้ เก็บไฟล์เพลงไว้เป็นรหัสตามเลขไอดีของแต่ละเพลง
และมีฟิล์ดสำหรับเก็บชื่อเพลงอีกต่างหาก เช่น เพลง ใจสั่งมา ศิลปิน โลโซ และเก็บไฟล์เพลงเป็น song_file_full_00001.mp3

ตอนแรกที่ลองดาวน์โหลดดู จะได้ไฟล์เพลงชื่อ song_file_full_00001.mp3
ซึ่งคงไม่ดีต่อคนโหลดเพลง หรือ ลูกค้าอย่างแน่นอน เพราะต้องไปเปลี่ยนชื่อเพลงเองอีกใช่ไหมครับ

แต่เราต้องการดาวน์โหลดแล้วได้ชื่อเพลงเป็น "ใจสั่งมา-โลโซ.mp3" แบบนี้สิถึงจะถูกต้อง
ก็เลยเจอวิธีแก้ปัญหาทั้งหมดข้างต้นที่กล่าวมา ดังนี้ครับ

$song_path="adminweb/song_full/song_file_full_".$song_id.".MP3"; //ตรงนี้เป็นที่อยู่ของไฟล์เพลงบนเซอร์เวอร์
    $song_name=$song_name."-".$artist_name.".MP3"; //ชื่อไฟล์ที่จะให้ดาวน์โหลด สามารถเปลี่ยนได้ตามใจชอบนะครับ


    if (file_exists($song_path)) { // ตรวจสอบก่อนว่าไฟล์มีอยู่จริงหรือเปล่า
        header('Content-Description: File Transfer');
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename='.urldecode($song_name)); //ตรงนี้ก็ใส่ชื่อไฟล์ตามข้างบนไป
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Pragma: public');
        header('Content-Length: ' . filesize($song_path)); // อันนี้ก็ไม่มีอะไร แจ้งให้ระบบทราบว่าไฟล์ของเราขนาดเท่าไร
        ob_clean();
        flush();
        readfile($song_path); // และสั่งให้ดาวน์โหลดไฟล์ จบข่าว
       
    }    
?>


ที่อธิบายซะยื้ดยาวก็เพราะว่าอยากจะให้เห็นภาพ เห็นปัญหาแบบรวมนะครับ
ถ้ายังไม่เข้าใจ หรือ สงสัยตรงไหนก็สอบถามเข้ามาได้ตลอดนะครับ

"เพราะความรู้ คือการแบ่งปัน"