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

บทความทั้งหมด วิธีใช้งานโปรแกรม PHP CODE FATHER V.2016 Register - ลงทะเบียนโปรแกรม Contact Us - ติดต่อเรา About Us - เกี่ยบกับเรา รับเขียนเว็บ โปรเจ็ค PHP vs MySQL
ติดต่อเข้ามาได้เลยนะครับ ราคากันเอง ไม่เคยทิ้งงาน
งานแก้ งานด่วน งานเร่งสอบถามกันก่อนได้ครับผม...
110308Code Login Logout Php การทำระบบล๊อกอิน ล๊อกเอ้า และป้องกันการลักไก่ แบบละเอียดที่สุด 41574Code Send Email by PHP การส่งอีเมล์ด้วย พีเอสพี 44004Captcha Security Code PHP ใส่รหัสยืนยันก่อนโพสป้องกันการสแปมเว็บเราดีกว่า 74413Php Code Insert to Mysql การเพิ่มข้อมูลใหม่เข้าสู่ฐานข้อมูล 49808PHP CODE FATHER โปรแกรมสร้างโปรเจ็ค PHP + Mysql สร้างโค้ดโปรแกรม php mysql insert update add edit delete ง่ายๆ 35959Download Free Program Php Code Father V.2010 ดาวน์โหลดโปรแกรมฟรี 33788ดาวน์โหลดคู่มือ วิธีใช้งานโปรแกรม Php Code Father V.2010 62817Function Confirm Delete JavaScript การยืนยันก่อนลบข้อมูล ง่าย ๆ แต่สำคัญ 33818PHP Function ECHO Exit ฟังก์ชั่นเล็ก ๆ ที่ไม่ธรรมดา เครื่องมือ DEBUG ชั้นยอด 12081PHP CODE FATHER V.2010 ตัวเต็ม Full ขั้นตอนการสมัครและรายละเอียดการลงทะเบียนใช้งานโปรแกรม 87098Code Search PHP In Mysql Database By Fields การค้นหาข้อมูลในฐานข้อมูล ตามชื่อฟิลด์ 30503แก้ปัญหาการใช้งานฟังก์ชั่น substr ใน php ตัดข้อความภาษาไทยแล้วกลายเป็นภาษาต่างดาว 39610การดาวน์โหลดไฟล์+เทคนิคการตั้งชื่อไฟล์เป็นภาษาไทย PHP Code Download File Thai 49232PHP Function Date Thai การแปลงวันที่จาก ค.ศ. เป็น พ.ศ. วันที่แบบไทย ๆ สำหรับคนไทย 44720การแทรก PHP ใน Javascript เรื่องกล้วย ๆ ที่อาจจะต้องได้ใช้ 41227การแทรก Javascript ใน PHP เรื่องกล้วย ๆ ที่จำเป็นต้องรู้ 56749Php Code Upload File การอัพโหลดไฟล์และการตรวจสอบประเภทของไฟล์ภาพและอื่น ๆ 15892 Single Quote SQL Query Insert update แก้ปัญหาเวลาข้อมูลที่มีเครื่องหมายฟันเดี่ยว (single quote) แล้วไม่ได้ ไม่ผ่าน 14443การใช้งานฟังก์ชั่น substring() ใน javascript และการตรวจสอบจำนวนเงินกับการสั่งซื้ออัลบั้มออนไลน์ 129292คำสั่ง sql Select from Where ,Like ,Order By ที่จำเป็นต้องใช้และต้องใช้บ่อย ๆ 52683code update php to mysql database คำสั่งปรับปรุงข้อมูลในฐานข้อมูล 50330php function number_format ใส่จุดทศนิยมและเครื่องหมายคอมม่าให้ตัวเลข เงิน 45581ง่าย ๆ php auto id การสร้างเลขที่อัตโนมัติก่อนเพิ่มข้อมูลใหม่ 57353Code Redirect URL ด้วย php และ javascript การส่งผู้ใช้ไปหน้าที่เราต้องการ 56098ง่าย ๆ การทำวันที่แบบ List ให้เลือก วัน เดืือน ปี Select Option List Date 101382Code PHP Popup การป๊อปอัพหน้าต่างใหม่โดยใช้ Javascript 57729เทคนิค...การทำให้ Textbox กรอกหรือป้อนได้เฉพาะตัวเลขด้วย Javascript ง่ายๆ 47193Step 1 สร้างเว็บบอร์ดแบบบ้านๆ ด้วย PHP Webboard Script 40147เทคนิคการแสดงและซ่อน div, table และอื่น ๆ ด้วย Javascript Show and Hide DIV or TABLE 53978Step 2 ฐานข้อมูล สร้างเว็บบอร์ดแบบบ้านๆ ด้วย PHP Webboard Script 92904ปัญหาการแสดงผลตารางบน Internet Explorer เพี้ยน Table ie7 Error 24050การเชื่อมต่อฐานข้อมูล PHP+MySQL และวิธีแก้ไขปัญหาภาษาไทยผิดเพี้ยน กลายเป็นภาษาต่างดาว 39452วิธีแก้ปัญหา Internal Server Error ตอนรัน PHP กับ Apache Server MSQL 37456แปลงตัวเลขให้เป็นตัวอักษรภาษาไทย PHP Code Thai BathText 40576php easy calculator เครื่องคิดเลขอย่างง่าย บวก ลบ คูณ หาร 34100php easy calculator with Ajax เครื่องคิดเลขอย่างง่าย บวก ลบ คูณ หาร ภาคต่อ 189399ทำระบบล๊อกอินอย่างง่าย ด้วย PHP Login with Mysql Data Base 15476Step 3 โค้ดเว็บบอร์ดแบบง่าย ๆ พร้อมใช้งาน PHP Webboard Script 45550โค้ดการเลือกจังหวัด อำเภอ ตำบล ด้วย Ajax vs Code PHP select Provicne Umphur District 78655(ภาคต่อ แก้ไข อัพเดท) โค้ดการเลือกจังหวัด อำเภอ ตำบล ด้วย Ajax Code PHP select Provicne Umphur District with Edit 30565แก้ปัญหาPHP อัพขึ้น Host แล้วใช้งานไม่ได้ ไม่ส่งค่าตัวแปรแต่ที่เครื่อง localhost ใช้ได้ 166452PHP Random Number+String สุ่มตัวเลขตัวอักษรหรือตัวหนังสือไม่ซ้ำอย่างง่าย 130225โค้ดระบบแบ่งหน้า เพิ่ม ลบ แก้ไข และค้นหาตามรายชื่อฟิลด์ในหน้าเดียว 82719ติ๊กถูก Checkbox ยอมรับเงื่อนไขแล้วปุ่ม submit ขึ้นให้คลิก 21304แก้ปัญหา warning session_start() function.session-start cannot send session cache limiter 38724การใช้งานโปรแกรม php code father สร้างไฟล์ php แสดงข้อมูล เพิ่ม ลบ แก้ไข ค้นหา แบ่งหน้า 348745ฝึกเขียนโค้ด php โปรแกรมจำลองการถอนเงินจากตู้ ATM 204958สอนเขียน PHP แบบฮาๆ ตอน 1 ติดตั้งโปรแกรมพร้อมใช้งานเบื้องต้น 74602การแบ่งหน้า Boostrap Pagination PHP+MySql ง่าย ๆแบบจับมือทำ 30319Easy Code PHP Check Device โค้ดตรวจสอบประเภทอุปกรณ์ที่กำลังใช้งานเว็บไซต์ 11797สอน PHP สร้าง Webboard ตอน 1 สร้างฐานข้อมูล Mysql 14493สอน PHP Webboard ตอน#2 เชื่อมต่อฐานข้อมูล Connect Mysql DataBase 198907สอน PHP Webboard ตอน#3 ระบบล๊อกอิน Login เข้าสู่ระบบ 31142มาแล้วครับ PHP CODE FATHER V.2016 ร่วมกับ Boostrap 106539วิธีแก้ปัญหา Xampp เข้า phpMyadmin ไม่ได้ 1176สอนเขียนโค้ด PHP แบบจับมือทำ Ep.1 เชื่อมฐานข้อมูลและแสดงผลข้อมูล 26434PHP เทคนิคการ Update ข้อมูลทีละหลาย ๆ รายการ 113636การติดตั้งและใช้งาน 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); // และสั่งให้ดาวน์โหลดไฟล์ จบข่าว
       
    }    
?>


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

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