Biasanya, Anda tidak perlu menggunakan bahasa skrip sisi server apa pun seperti PHP untuk mengunduh gambar, file zip, dokumen pdf, file exe, dll. Jika file semacam itu disimpan di folder yang dapat diakses publik, Anda dapat membuat hyperlink yang menunjuk ke file itu, dan setiap kali pengguna mengklik tautan tersebut, browser akan secara otomatis mengunduh file itu.
Download Zip file Download PDF file Download Image file Download EXE file
Mengklik tautan yang mengarah ke file PDF atau Gambar tidak akan menyebabkannya diunduh ke hard drive Anda secara langsung. Itu hanya akan membuka file di browser Anda. Selanjutnya Anda dapat menyimpannya ke hard drive Anda. Namun, file zip dan exe diunduh secara otomatis ke hard drive secara default
Memaksa Download Menggunakan PHP
Anda dapat memaksa gambar atau file jenis lain untuk diunduh langsung ke hard drive pengguna menggunakan fungsi PHP readfile(). Di sini kita akan membuat galeri gambar sederhana yang memungkinkan pengguna mengunduh file gambar dari browser dengan satu klik mouse
Mari buat file bernama "image-gallery. php" dan letakkan kode berikut di dalamnya
Simple Image Gallery '; echo ''; echo '
Download
'; echo '_'; } ?>_Jika Anda melihat kode contoh di atas dengan hati-hati, Anda akan menemukan pint link download ke "download. php", URL juga berisi nama file gambar sebagai string kueri. Selain itu, kami telah menggunakan fungsi PHP urlencode()_ untuk menyandikan nama file gambar sehingga dapat diteruskan dengan aman sebagai parameter URL, karena nama file mungkin berisi karakter URL yang tidak aman
Berikut kode lengkap "download. php", yang memaksa pengunduhan gambar
Demikian pula, Anda dapat memaksa mengunduh format file lain seperti dokumen kata, file pdf, dll
Ekspresi reguler pada contoh di atas (baris no-8) tidak akan mengizinkan file yang namanya diawali atau diakhiri dengan karakter titik (.), misalnya, memungkinkan nama file seperti kites.jpg atau Kites.jpg, myscript.min.js tetapi tidak
Sebelumnya telah disebutkan bahwa file zip dan exe diunduh secara otomatis, tanpa menggunakan skrip PHP. Pertama, buat file HTML dengan kode berikut. Di sini, empat elemen jangkar ditentukan untuk mengunduh empat jenis file. Jenis file ini termasuk file TEXT, ZIP, PDF, dan JPG
Unduh. html
< html >
< kepala >
< judul > Unduh File < /title>
< /kepala >
< tubuh >
< p >< a href="abc.txt" > Unduh file TEXT < /a>
< p >< a href="horizon.zip" > Unduh file ZIP < /a>
< p >< a href="lecture.pdf" > Unduh file PDF < /a>
< p >< a href="rose.jpg" > Unduh file JPG < /a>
< /tubuh >
< /html >
Keluaran
Kotak dialog berikut akan muncul untuk mengunduh file setelah mengklik tautan file zip. Pengguna kemudian dapat mengunduh file atau membuka file di pengelola arsip
Jika Anda mengklik file gambar, gambar akan dibuka secara otomatis di browser, seperti yang ditunjukkan pada output berikut. Anda harus menyimpan file untuk membuat salinan file gambar di drive lokal. Dengan cara yang sama, ketika Anda mengklik tautan file PDF dan TEXT, konten file akan dibuka di browser tanpa mengunduh file. Solusi untuk masalah ini adalah mengunduh file secara paksa menggunakan fungsi readfile() PHP bawaan
Unduh File Menggunakan fungsi readfile()
Fungsi readfile() digunakan dalam skrip PHP untuk mengunduh paksa file apa pun dari lokasi saat ini, atau file dengan jalur file. Sintaks fungsi ini diberikan di bawah ini
Sintaksis
int readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] )
Fungsi ini dapat mengambil tiga argumen. Argumen pertama bersifat wajib, dan dua argumen lainnya bersifat opsional. Argumen pertama, $filename, menyimpan nama file atau nama file dengan path yang akan diunduh. Nilai default parameter kedua, $use_include_path, adalah false dan akan disetel ke true jika nama file dengan path digunakan di argumen pertama. Argumen ketiga, $context, digunakan untuk menunjukkan sumber aliran konteks. Fungsi ini mengembalikan jumlah byte yang dibaca dari file yang disebutkan dalam argumen pertama. Penggunaan fungsi ini ditunjukkan dalam dua contoh berikut
Contoh 1. Unduh File dengan Nama File
Dalam contoh ini, kita akan membuat file HTML dengan kode berikut, dimana nama file akan diteruskan sebagai parameter URL bernama path, dan nilai parameter ini akan diteruskan ke file PHP bernama download. php
unduh2. html
< html >
< kepala >
< judul >Unduh File< /judul
< /kepala >
< tubuh >
< p >< a href="download.php?path=abc.txt" >Unduh TEXT file< /a>
< p >< a href="download.php?path=horizon.zip" >Unduh file ZIP< /a >< /p>
< p >< a href="download.php?path=lecture.pdf" >Unduh file PDF< /a >< /p>
< p >< a href="download.php?path=rose.jpg" >Unduh file JPG< /a >< /p>
< /tubuh >
< /html >
Kami akan membuat file PHP dengan kode berikut untuk mengunduh file secara paksa. Di sini, fungsi isset() digunakan untuk memeriksa apakah $_GET[‘path’] sudah ditentukan. Jika variabel ditentukan, fungsi file_exists() digunakan untuk memeriksa apakah file ada di server. Selanjutnya, fungsi header() digunakan untuk mengatur informasi header yang diperlukan sebelum menggunakan fungsi readfile(). Fungsi basename() digunakan untuk mengambil nama file, dan fungsi filesize() digunakan untuk membaca ukuran file dalam byte, yang akan ditampilkan di kotak dialog pembuka untuk mengunduh file. Fungsi flush() digunakan untuk menghapus buffer keluaran. Fungsi readfile() digunakan dengan nama file saja, di sini
unduh. php
Keluaran
Setelah tautan unduhan file PDF diklik, output berikut akan muncul
Video tutorial
Kesimpulan
Artikel ini memberikan cara sederhana untuk mengunduh paksa file apa pun menggunakan skrip PHP, untuk membantu pembaca menambahkan fitur unduhan dalam skrip mereka