Sebagai contoh, katakanlah Anda memiliki file mp3 dari hit single terbaru Anda, dan anda ingin berbagi file tersebut dengan pengunjung situs. Anda dapat dengan hanya membuat link menuju file tersebut:
Yang jadi masalah dengan metode ini adalah bahwa sebagian besar browser memiliki kemampuan untuk memutar file mp3. Oleh karena itu, mereka akan secara otomatis mengisi Quicktime, atau plug-in lainnya dan mulai men-download file di browser mereka. Dengan demikian mereka tidak akan mendapatkan file tersebut di hard drive. pengunjung situs seperti anda hanya dapat menikmati file tersebut dari browser. Nah, dengan bahasa pemrograman PHP, kita dapat dengan cepat mengatasi hal tersebut.<a href="mysong.mp3">Download My Hit Single</a>
Fungsi magis untuk melakukannya adalah header() function. Fungsi ini memungkinkan kita untuk mendefinisikan header HTTP baku sebagai string. Script kemudian akan mengeksekusi fungsi header dan memaksa browser untuk membuat halaman yang di inginkan.
hal yang pertama dilakukan kita perlu menentukan path ke file kita di PHP (sebagai string).
Setelah kita memiliki path file kita pasti, Sekarang kita harus mengecek untuk memastikan bahwa itu benar-benar ada sebelum melanjutkan. Jika file tidak ada kita akan menampilkan pesan kesalahan ke layar browser.<?PHP // Define the path to file $file = '
mysong.mp3
'; ?>
Sekarang kita telah melewati cek ini, waktunya untuk pindah ke bagian kedua yaitu di mana kita mendefinisikan semua header kita.if(!file_exists($file))) { die('Error: File not found.'); }
Kebanyakan dari parameter ini header cukup jelas. Yang penting di sini adalah file Transfer, attachment, and application/zip definitions. "Content-Description: File Transfer" akan membantu pengguna untuk medownload file. Definisi dari "Content-Disposition: attachment" pada baris berikutnya, untuk memberitahu browser bahwa kita memang akan menuju link ke file. Baris berikutnya, "Content-Type", memberitahu browser jenis aplikasi dasar file sebagai referensi.else { // Set headers header("Cache-Control: public"); header("Content-Description: File Transfer"); header("Content-Disposition: attachment; filename=$file"); header("Content-Type: application/zip"); header("Content-Transfer-Encoding: binary"); }
Sekarang kita sudah memiliki semua header, apa yang kita lakukan? Yah sederhananya, kita membuka file menggunakan readfile() function. Ini benar-benar akan menjadi tempat di dalam tanda kurung kurawal lain.
Kode yang sudah selesei terlihat seperti:// Read the file from disk readfile($file);
Jadi dari kode tersebut, kita memaksa untuk download file melalui file PHP. Ini benar-benar membuka banyak jalan dalam aplikasi web Anda karena sekarang Anda bisa membuat link download anda dinamis dan bahkan menambahkan pelacakan stat maju melalui database.<?PHP // Define the path to file $file = 'ryboe_tag_cloud.zip'; if(!file) { // File doesn't exist, output error die('file not found'); } else { // Set headers header("Cache-Control: public"); header("Content-Description: File Transfer"); header("Content-Disposition: attachment; filename=$file"); header("Content-Type: application/zip"); header("Content-Transfer-Encoding: binary"); // Read the file from disk readfile($file); } ?>