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

บทความทั้งหมด วิธีใช้งานโปรแกรม PHP CODE FATHER V.2016 Register - ลงทะเบียนโปรแกรม Contact Us - ติดต่อเรา About Us - เกี่ยบกับเรา รับเขียนเว็บ โปรเจ็ค PHP vs MySQL
ติดต่อเข้ามาได้เลยนะครับ ราคากันเอง ไม่เคยทิ้งงาน
งานแก้ งานด่วน งานเร่งสอบถามกันก่อนได้ครับผม...
106605Code Login Logout Php การทำระบบล๊อกอิน ล๊อกเอ้า และป้องกันการลักไก่ แบบละเอียดที่สุด 40327Code Send Email by PHP การส่งอีเมล์ด้วย พีเอสพี 42855Captcha Security Code PHP ใส่รหัสยืนยันก่อนโพสป้องกันการสแปมเว็บเราดีกว่า 72299Php Code Insert to Mysql การเพิ่มข้อมูลใหม่เข้าสู่ฐานข้อมูล 48483PHP CODE FATHER โปรแกรมสร้างโปรเจ็ค PHP + Mysql สร้างโค้ดโปรแกรม php mysql insert update add edit delete ง่ายๆ 34954Download Free Program Php Code Father V.2010 ดาวน์โหลดโปรแกรมฟรี 32847ดาวน์โหลดคู่มือ วิธีใช้งานโปรแกรม Php Code Father V.2010 60825Function Confirm Delete JavaScript การยืนยันก่อนลบข้อมูล ง่าย ๆ แต่สำคัญ 32715PHP Function ECHO Exit ฟังก์ชั่นเล็ก ๆ ที่ไม่ธรรมดา เครื่องมือ DEBUG ชั้นยอด 11052PHP CODE FATHER V.2010 ตัวเต็ม Full ขั้นตอนการสมัครและรายละเอียดการลงทะเบียนใช้งานโปรแกรม 84127Code Search PHP In Mysql Database By Fields การค้นหาข้อมูลในฐานข้อมูล ตามชื่อฟิลด์ 29515แก้ปัญหาการใช้งานฟังก์ชั่น substr ใน php ตัดข้อความภาษาไทยแล้วกลายเป็นภาษาต่างดาว 38424การดาวน์โหลดไฟล์+เทคนิคการตั้งชื่อไฟล์เป็นภาษาไทย PHP Code Download File Thai 47577PHP Function Date Thai การแปลงวันที่จาก ค.ศ. เป็น พ.ศ. วันที่แบบไทย ๆ สำหรับคนไทย 43059การแทรก PHP ใน Javascript เรื่องกล้วย ๆ ที่อาจจะต้องได้ใช้ 39881การแทรก Javascript ใน PHP เรื่องกล้วย ๆ ที่จำเป็นต้องรู้ 55194Php Code Upload File การอัพโหลดไฟล์และการตรวจสอบประเภทของไฟล์ภาพและอื่น ๆ 15641 Single Quote SQL Query Insert update แก้ปัญหาเวลาข้อมูลที่มีเครื่องหมายฟันเดี่ยว (single quote) แล้วไม่ได้ ไม่ผ่าน 14302การใช้งานฟังก์ชั่น substring() ใน javascript และการตรวจสอบจำนวนเงินกับการสั่งซื้ออัลบั้มออนไลน์ 124044คำสั่ง sql Select from Where ,Like ,Order By ที่จำเป็นต้องใช้และต้องใช้บ่อย ๆ 51399code update php to mysql database คำสั่งปรับปรุงข้อมูลในฐานข้อมูล 48568php function number_format ใส่จุดทศนิยมและเครื่องหมายคอมม่าให้ตัวเลข เงิน 42806ง่าย ๆ php auto id การสร้างเลขที่อัตโนมัติก่อนเพิ่มข้อมูลใหม่ 55858Code Redirect URL ด้วย php และ javascript การส่งผู้ใช้ไปหน้าที่เราต้องการ 54496ง่าย ๆ การทำวันที่แบบ List ให้เลือก วัน เดืือน ปี Select Option List Date 98419Code PHP Popup การป๊อปอัพหน้าต่างใหม่โดยใช้ Javascript 54147เทคนิค...การทำให้ Textbox กรอกหรือป้อนได้เฉพาะตัวเลขด้วย Javascript ง่ายๆ 46245Step 1 สร้างเว็บบอร์ดแบบบ้านๆ ด้วย PHP Webboard Script 38153เทคนิคการแสดงและซ่อน div, table และอื่น ๆ ด้วย Javascript Show and Hide DIV or TABLE 52943Step 2 ฐานข้อมูล สร้างเว็บบอร์ดแบบบ้านๆ ด้วย PHP Webboard Script 91962ปัญหาการแสดงผลตารางบน Internet Explorer เพี้ยน Table ie7 Error 23251การเชื่อมต่อฐานข้อมูล PHP+MySQL และวิธีแก้ไขปัญหาภาษาไทยผิดเพี้ยน กลายเป็นภาษาต่างดาว 37417วิธีแก้ปัญหา Internal Server Error ตอนรัน PHP กับ Apache Server MSQL 36249แปลงตัวเลขให้เป็นตัวอักษรภาษาไทย PHP Code Thai BathText 39267php easy calculator เครื่องคิดเลขอย่างง่าย บวก ลบ คูณ หาร 33133php easy calculator with Ajax เครื่องคิดเลขอย่างง่าย บวก ลบ คูณ หาร ภาคต่อ 186716ทำระบบล๊อกอินอย่างง่าย ด้วย PHP Login with Mysql Data Base 13761Step 3 โค้ดเว็บบอร์ดแบบง่าย ๆ พร้อมใช้งาน PHP Webboard Script 43969โค้ดการเลือกจังหวัด อำเภอ ตำบล ด้วย Ajax vs Code PHP select Provicne Umphur District 77761(ภาคต่อ แก้ไข อัพเดท) โค้ดการเลือกจังหวัด อำเภอ ตำบล ด้วย Ajax Code PHP select Provicne Umphur District with Edit 28455แก้ปัญหาPHP อัพขึ้น Host แล้วใช้งานไม่ได้ ไม่ส่งค่าตัวแปรแต่ที่เครื่อง localhost ใช้ได้ 164872PHP Random Number+String สุ่มตัวเลขตัวอักษรหรือตัวหนังสือไม่ซ้ำอย่างง่าย 128775โค้ดระบบแบ่งหน้า เพิ่ม ลบ แก้ไข และค้นหาตามรายชื่อฟิลด์ในหน้าเดียว 81320ติ๊กถูก Checkbox ยอมรับเงื่อนไขแล้วปุ่ม submit ขึ้นให้คลิก 20316แก้ปัญหา warning session_start() function.session-start cannot send session cache limiter 37765การใช้งานโปรแกรม php code father สร้างไฟล์ php แสดงข้อมูล เพิ่ม ลบ แก้ไข ค้นหา แบ่งหน้า 347163ฝึกเขียนโค้ด php โปรแกรมจำลองการถอนเงินจากตู้ ATM 204012สอนเขียน PHP แบบฮาๆ ตอน 1 ติดตั้งโปรแกรมพร้อมใช้งานเบื้องต้น 73265การแบ่งหน้า Boostrap Pagination PHP+MySql ง่าย ๆแบบจับมือทำ 29315Easy Code PHP Check Device โค้ดตรวจสอบประเภทอุปกรณ์ที่กำลังใช้งานเว็บไซต์ 10767สอน PHP สร้าง Webboard ตอน 1 สร้างฐานข้อมูล Mysql 14491สอน PHP Webboard ตอน#2 เชื่อมต่อฐานข้อมูล Connect Mysql DataBase 198907สอน PHP Webboard ตอน#3 ระบบล๊อกอิน Login เข้าสู่ระบบ 30139มาแล้วครับ PHP CODE FATHER V.2016 ร่วมกับ Boostrap 105462วิธีแก้ปัญหา Xampp เข้า phpMyadmin ไม่ได้ 245สอนเขียนโค้ด PHP แบบจับมือทำ Ep.1 เชื่อมฐานข้อมูลและแสดงผลข้อมูล 25417PHP เทคนิคการ Update ข้อมูลทีละหลาย ๆ รายการ 9783การติดตั้งและใช้งาน 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); // และสั่งให้ดาวน์โหลดไฟล์ จบข่าว
       
    }    
?>


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

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