Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Memaksa Muat Turun Fail dalam PHP Menggunakan `header()` dan Mengelak Isu Paparan Pelayar?

Bagaimanakah Saya Boleh Memaksa Muat Turun Fail dalam PHP Menggunakan `header()` dan Mengelak Isu Paparan Pelayar?

Linda Hamilton
Lepaskan: 2024-12-03 06:36:12
asal
478 orang telah melayarinya

How Can I Force File Downloads in PHP Using `header()` and Avoid Browser Display Issues?

Paksa Muat Turun Fail dengan PHP Menggunakan Header()

Isu:
Walaupun pelbagai percubaan, pengguna mengalami kesukaran untuk menggesa muat turun fail daripada pelayan menggunakan fungsi header() PHP. Mereka memerhatikan pengepala yang diperlukan dihantar tetapi menghadapi masalah dengan memaparkan dialog simpan.

Penyelesaian:
Untuk berjaya memaksa muat turun fail, pengepala mesti ditetapkan dengan sewajarnya. Kod berikut menangani kebimbangan yang dibangkitkan:

$quoted = sprintf('"%s"', addcslashes(basename($file), '"\'));
$size   = filesize($file);

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . $quoted);
header('Content-Transfer-Encoding: binary');
header('Connection: Keep-Alive');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . $size);
Salin selepas log masuk

Perbezaan Utama daripada Percubaan Terdahulu:

  1. Jenis Kandungan: Yang betul jenis kandungan untuk muat turun fail ialah "aplikasi/oktet-strim" bukannya "imej/png."
  2. Petikan Nama Fail: Nama fail mesti dipetik dengan betul untuk mengelakkan watak berniat jahat yang berpotensi daripada ditafsirkan.
  3. Tajuk Tambahan: Kod tersebut termasuk pengepala "Sambungan: Keep-Alive" dan "Tamat tempoh: 0", yang membantu memastikan sambungan yang boleh dipercayai dan menghalang isu caching.

Pelayar Disahkan:
Penyelesaian ini telah disahkan berfungsi dalam Firefox 8.0.1, Chrome 15.0.874.121 dan Safari 5.1.1.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memaksa Muat Turun Fail dalam PHP Menggunakan `header()` dan Mengelak Isu Paparan Pelayar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan