Paksa Muat Turun Fail Menggunakan pengepala() dalam PHP
Untuk membolehkan pengguna memuat turun fail daripada pelayan anda, anda boleh menggunakan pengepala() fungsi. Walau bagaimanapun, jika anda menghadapi masalah dengan contoh sedia ada, artikel ini akan menyediakan penyelesaian.
Kod yang anda cuba tidak termasuk pengepala penting berikut:
- Jenis Kandungan yang menyatakan jenis fail (cth., imej/png)
- Pelupusan Kandungan yang menunjukkan bahawa fail harus dimuat turun dan bukannya dipaparkan dalam pelayar
- Panjang Kandungan yang menunjukkan saiz fail
Berikut ialah coretan kod yang diperbetulkan yang sepatutnya berfungsi:
$size = filesize("Image.png");
header('Content-Type: image/png');
header('Content-Disposition: attachment; filename="Image.png"');
header('Content-Length: ' . $size);
readfile("Image.png");
Salin selepas log masuk
Langkah Penyelesaian Masalah:
- Pastikan laluan fail adalah betul dan fail wujud.
- Sahkan bahawa pelayan web mempunyai kebenaran untuk mengakses fail.
- Semak sama ada semua pengepala yang diperlukan ada dan betul.
- Cuba lumpuhkan mana-mana sambungan penyemak imbas atau pemalam yang boleh mengganggu muat turun.
- Kosongkan cache dan kuki penyemak imbas.
- Uji kod dalam berbilang penyemak imbas untuk menolak isu khusus penyemak imbas.
Pertimbangan Tambahan:
- Untuk fail bukan imej, Jenis Kandungan hendaklah tetapkan sewajarnya (cth., strim aplikasi/oktet untuk fail binari generik).
- Jika anda mahukan fail untuk dipaparkan sebaris dalam penyemak imbas dan bukannya dimuat turun, gantikan lampiran dengan sebaris dalam pengepala Pelupusan Kandungan.
- Anda boleh menghalang fail daripada dicache dengan menambah pengepala berikut:
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
Salin selepas log masuk
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memaksa Muat Turun Fail dalam PHP Menggunakan Fungsi `header()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!