Cara memuat turun fail dalam PHP

How Download File Php



Secara amnya, skrip PHP tidak diperlukan untuk memuat turun fail dengan sambungannya exe dan zip . Sekiranya lokasi fail jenis fail ini ditetapkan di href atribut elemen penambat, maka fail akan dimuat turun secara automatik apabila pengguna mengklik pautan muat turun. Beberapa fail, seperti imej fail, PDF fail, teks fail, CSV fail, dll, tidak memuat turun secara automatik, dan sebaliknya, buka di penyemak imbas apabila pengguna mengklik pautan muat turun. Fail-fail ini boleh dimuat secara paksa dalam PHP menggunakan fail baca () fungsi yang tidak memuat turun secara automatik. Tutorial ini menunjukkan kepada anda cara memuat turun fail secara paksa menggunakan skrip PHP.

Semak Pautan Muat Turun

Sebelum ini disebutkan bahawa zip dan exe muat turun fail secara automatik, tanpa menggunakan skrip PHP. Pertama, buat fail HTML dengan kod berikut. Di sini, empat elemen sauh ditentukan untuk memuat turun empat jenis fail. Jenis fail ini merangkumi fail TEXT, ZIP, PDF, dan JPG.







Muat turun.html



< html >
< kepala >
< tajuk >Muat turun Fail</ tajuk >
</ kepala >
< badan >
< hlm >< ke href='abc.txt'>Muat turun fail TEXT</ ke ></ hlm >
< hlm >< ke href='cakrawala.zip'>Muat turun fail ZIP</ ke ></ hlm >
< hlm >< ke href='kuliah.pdf'>Muat turun fail PDF</ ke ></ hlm >
< hlm >< ke href='rose.jpg'>Muat turun fail JPG</ ke ></ hlm >
</ badan >
</ html >

Pengeluaran
Kotak dialog berikut akan muncul untuk memuat turun fail setelah mengklik pautan fail zip. Pengguna kemudian boleh memuat turun fail atau membuka fail tersebut di pengurus arkib.




Sekiranya anda mengklik pada fail gambar, gambar akan dibuka secara automatik di penyemak imbas, seperti yang ditunjukkan pada output berikut. Anda mesti menyimpan fail untuk membuat salinan fail gambar dalam pemacu tempatan. Dengan cara yang sama, apabila anda mengklik pada pautan fail PDF dan TEXT, kandungan fail akan dibuka di penyemak imbas tanpa memuat turun fail tersebut. Penyelesaian untuk masalah ini adalah dengan memuat turun fail secara paksa menggunakan PHP bawaan fail baca () fungsi.





Muat turun Fail Menggunakan Fungsi readfile ()

The fail baca () fungsi digunakan dalam skrip PHP untuk secara paksa memuat turun file lokasi saat ini, atau file dengan jalur file. Sintaks fungsi ini diberikan di bawah.



Sintaks
int readfile (string $ nama fail [, bool $ use_include_path = false [, sumber $ konteks]])

Fungsi ini boleh mengambil tiga hujah. Argumen pertama adalah wajib, dan dua argumen lain adalah pilihan. Hujah pertama, $ nama fail , menyimpan nama fail atau nama fail dengan jalan yang akan dimuat turun. Nilai lalai parameter kedua, $ use_include_path , salah dan akan ditetapkan menjadi benar jika nama fail dengan jalan digunakan dalam argumen pertama. Hujah ketiga, $ konteks , digunakan untuk menunjukkan sumber aliran konteks. Fungsi ini mengembalikan bilangan bait yang dibaca dari fail yang disebut dalam argumen pertama. Penggunaan fungsi ini ditunjukkan dalam dua contoh berikut.

Contoh 1: Muat turun Fail dengan Nama Fail

Dalam contoh ini, kami akan membuat file HTML dengan kod berikut, di mana nama file akan diteruskan sebagai parameter dari URL yang dinamakan jalan , dan nilai parameter ini akan diteruskan ke file PHP yang diberi nama muat turun.php .

muat turun2.html

< html >
< kepala >
< tajuk > Muat turun Fail</ tajuk >
</ kepala >
< badan >
< hlm >< ke href='muat turun.php? path = abc.txt'> Muat turunTEKSfail</ ke ></ hlm >
< hlm >< ke href='muat turun.php? path = horizon.zip'> Muat turun fail ZIP</ ke ></ hlm >
< hlm >< ke href='muat turun.php? path = ceramah.pdf'> Muat turun fail PDF</ ke ></ hlm >
< hlm >< ke href='muat turun.php? path = rose.jpg'> Muat turun fail JPG</ ke ></ hlm >
</ badan >
</ html >

Kami akan membuat fail PHP dengan kod berikut untuk memuat turun fail secara paksa. Di sini, hilang) fungsi digunakan untuk memeriksa sama ada $ _ DAPATKAN [‘jalan’] ditakrifkan. Sekiranya pemboleh ubah ditakrifkan, the file_exists () fungsi digunakan untuk memeriksa sama ada fail itu ada di pelayan. Seterusnya, kepala() fungsi digunakan untuk menetapkan maklumat header yang diperlukan sebelum menggunakan fail baca () fungsi. The nama asas () fungsi digunakan untuk mengambil nama fail, dan saiz fail() fungsi digunakan untuk membaca ukuran file dalam bait, yang akan ditunjukkan dalam kotak dialog pembukaan untuk memuat turun fail. The siram () fungsi digunakan untuk membersihkan output buffer. The fail baca () fungsi digunakan dengan nama fail sahaja, di sini.

muat turun.php



sekiranya( hilang ($ _ DAPATKAN['jalan']))
{
// Baca nama fail
$ nama fail = $ _ DAPATKAN['jalan'];
// Periksa fail ada atau tidak
sekiranya( fail_berada ($ nama fail)) {

// Tentukan maklumat tajuk
kepala ('Penerangan Kandungan: Pemindahan Fail');
kepala ('Content-Type: aplikasi / octet-stream');
kepala ('Cache-Control: no-cache, must-revalidate'.);
kepala ('Tamat: 0');
kepala ('Kandungan-Pelupusan: lampiran; nama fail = '. nama asas ($ nama fail).'' ');
kepala ('Kandungan-Panjang:' . saiz fail ($ nama fail));
kepala ('Pragma: awam');

// Hapus buffer output sistem
siram ();

// Baca ukuran fail
fail baca ($ nama fail);

// Tamatkan dari skrip
yang ();
}
yang lain{
membuang 'Fail tidak wujud.';
}
}
yang lain
membuang 'Nama fail tidak ditentukan.'
?>

Pengeluaran
Output berikut akan muncul setelah mengklik pautan muat turun fail gambar. Saiz fail dari mawar.jpg gambar adalah 27.2 KB , seperti yang ditunjukkan dalam kotak dialog. Anda boleh memuat turun fail dengan memilih Simpan fail butang radio dan menekan okey butang.

Contoh 2: Muat turun Fail dengan Laluan Fail

Sekiranya fail tersebut ada di lokasi fail yang diberikan, jalur fail akan diminta untuk disebutkan di URL. Dalam contoh ini, kami akan membuat fail HTML dengan kod berikut, yang akan meneruskan nama fail dengan jalur fail:

muat turun3.html

< html >
< kepala >
< tajuk >Muat turun Fail</ tajuk >
</ kepala >
< badan >
< hlm >< ke href='download.php? path = muat turun / kuliah.pdf'>Muat turun fail PDF</ ke ></ hlm >
< hlm >< ke href='download2.php? path = muat turun / rose.jpg'>Muat turun fail JPG</ ke ></ hlm >
</ badan >
</ html >

Kami akan membuat fail PHP dengan kod berikut untuk memuat turun fail dari laluan fail. Kod PHP dalam contoh sebelumnya akan sedikit diubah suai untuk memuat turun fail dari jalan yang diberikan. The clearstatecache () fungsi digunakan untuk membersihkan cache yang sebelumnya disimpan. Dua hujah digunakan dalam fail baca () fungsi.

muat turun2.php


sekiranya( hilang ($ _ DAPATKAN['jalan']))
{
// Baca url
$ url = $ _ DAPATKAN['jalan'];

// Kosongkan cache
clearstatcache ();

// Periksa laluan fail yang ada atau tidak
sekiranya( fail_berada ($ url)) {

// Tentukan maklumat tajuk
kepala ('Penerangan Kandungan: Pemindahan Fail');
kepala ('Content-Type: aplikasi / octet-stream');
kepala ('Kandungan-Pelupusan: lampiran; nama fail = '. nama asas ($ url).'' ');
kepala ('Kandungan-Panjang:' . saiz fail ($ url));
kepala ('Pragma: awam');

// Hapus buffer output sistem
siram ();

// Baca ukuran fail
fail baca ($ url,benar);

// Tamatkan dari skrip
yang ();
}
yang lain{
membuang 'Laluan fail tidak ada.';
}
}
membuang 'Laluan fail tidak ditentukan.'

?>

Pengeluaran
Setelah pautan muat turun fail PDF diklik, output berikut akan muncul.

Tutorial video

Kesimpulannya

Artikel ini memberikan cara mudah untuk memuat turun fail secara paksa menggunakan skrip PHP, untuk membantu pembaca menambahkan fitur muat turun dalam skrip mereka.