วิธีการใช้ PHP เพื่อบังคับให้ดาวน์โหลดไฟล์

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

เบื้องหลัง

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

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

จะทำอย่างไรถ้าคุณมีไฟล์ที่คุณต้องการให้บุคคลดาวน์โหลดแทนการดูโดยตรงในเว็บเบราเซอร์

หากเป็นไฟล์ HTML หรือ ไฟล์ PDF คุณจะไม่สามารถโพสต์ลิงก์ไปยังเอกสารดังกล่าวได้เนื่องจาก (ตามที่เราได้กล่าวมาแล้ว) เว็บเบราเซอร์จะเปิดเอกสารเหล่านั้นโดยอัตโนมัติและแสดงเป็นบรรทัดในบรรทัด เพื่อให้ไฟล์เหล่านี้สามารถดาวน์โหลดไปยังคอมพิวเตอร์ของบุคคลได้คุณจำเป็นต้องทำเคล็ดลับบางอย่างโดยใช้ PHP

PHP ช่วยให้คุณสามารถเปลี่ยนส่วนหัว HTTP ของไฟล์ที่คุณเขียนได้

กระบวนการนี้ทำให้คุณสามารถบังคับให้ไฟล์ถูกดาวน์โหลดได้โดยปกติเบราเซอร์จะโหลดในหน้าต่างเดียวกัน เหมาะสำหรับไฟล์เช่นไฟล์ PDF ไฟล์เอกสารรูปภาพและวิดีโอที่คุณต้องการให้ลูกค้าดาวน์โหลดแทนที่จะใช้งานออนไลน์ได้โดยตรงจากเบราเซอร์

คุณต้องมี PHP บนเว็บเซิร์ฟเวอร์ซึ่งจะมีไฟล์โฮสต์ไฟล์ที่จะดาวน์โหลดและ ชนิด MIME ของไฟล์ที่ต้องการ

วิธีการทำเช่นนี้

  1. อัปโหลดไฟล์ที่คุณต้องการให้พร้อมสำหรับการดาวน์โหลดไปยังเว็บเซิร์ฟเวอร์ของคุณ ตัวอย่างเช่นสมมติว่าคุณมีไฟล์ PDF ที่คุณต้องการให้ผู้คนดาวน์โหลดเมื่อคลิกลิงก์ ก่อนอื่นคุณจะต้องอัปโหลดไฟล์ดังกล่าวลงในสภาวะแวดล้อมการโฮสต์ของเว็บไซต์ของคุณ
    huge_document.pdf
  2. แก้ไขไฟล์ PHP ตัวใหม่ในโปรแกรมแก้ไขเว็บของคุณเพื่อความสะดวกในการใช้งานเราขอแนะนำให้ตั้งชื่อไฟล์ให้เป็นชื่อเดียวกับไฟล์ที่คุณดาวน์โหลดเท่านั้นโดยใช้นามสกุล .php ตัวอย่างเช่น:
    huge_document.php
  3. เปิดบล็อก PHP ในเอกสารของคุณ:
  4. ในบรรทัดถัดไปให้ตั้งส่วนหัว HTTP:
    header ("Content-disposition: attachment; filename = large_document.pdf");
  5. จากนั้นตั้งค่า MIME-type ของไฟล์:
    ส่วนหัว ("Content-type: application / pdf");
  6. ชี้ไปที่ไฟล์ที่คุณต้องการดาวน์โหลด:
    readfile ( "huge_document.pdf");
  7. จากนั้นปิดบล็อก PHP และบันทึกไฟล์:
    ?>
  1. ไฟล์ PHP ของคุณควรมีลักษณะดังนี้:
    header ("Content-disposition: attachment; filename = large_document.pdf");
    ส่วนหัว ("Content-type: application / pdf");
    readfile ( "huge_document.pdf");
    ?>
  2. เชื่อมโยงไปยังไฟล์ PHP ของคุณเป็นลิงค์ดาวน์โหลดจากเว็บเพจ ตัวอย่างเช่น:
    ดาวน์โหลดเอกสารขนาดใหญ่ของฉัน (PDF)

ควร ไม่มีช่องว่างหรือค่าขนส่ง ใด ๆ ในไฟล์ (ยกเว้นหลังกึ่งโปร่ง) บรรทัดว่างจะทำให้ PHP เริ่มต้นเป็นข้อความประเภท MIME / html และไฟล์ของคุณจะไม่ดาวน์โหลด