Menyokong Muat Turun Boleh Semula dengan Skrip PHP
Soalan:
Apabila menggunakan skrip PHP untuk menghantar fail yang boleh dimuat turun , muat turun tidak boleh disambung semula oleh pengguna akhir. Bagaimanakah muat turun boleh disambung semula boleh disokong dengan penyelesaian sedemikian?
Jawapan:
Untuk mendayakan muat turun boleh disambung semula, ikut langkah berikut:
Hantar Julat Terima: bait pengepala:
Kendalikan pengepala julat:
Tetapkan kandungan separa pengepala:
Jika permintaan adalah untuk kandungan separa (Pengepala Julat ada), tetapkan pengepala berikut:
Hantar fail data:
Berikut ialah contoh kod PHP yang menunjukkan cara melaksanakan muat turun separa kandungan:
$filesize = filesize($file); $offset = 0; $length = $filesize; if (isset($_SERVER['HTTP_RANGE'])) { preg_match('/bytes=(\d+)-(\d+)?/', $_SERVER['HTTP_RANGE'], $matches); $offset = intval($matches[1]); $length = intval($matches[2]) - $offset; } $file = fopen($file, 'r'); fseek($file, $offset); $data = fread($file, $length); fclose($file); if ($offset > 0) { header('HTTP/1.1 206 Partial Content'); header('Content-Range: bytes ' . $offset . '-' . ($offset + $length) . '/' . $filesize); } header('Content-Type: ' . $ctype); header('Content-Length: ' . $length); header('Content-Disposition: attachment; filename="' . $fileName . '"'); header('Accept-Ranges: bytes'); print($data);
Kod ini menetapkan pengepala yang sesuai dan bertindak balas dengan data fail yang diminta, menyokong muat turun boleh disambung semula.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendayakan Muat Turun Boleh Disambung Semula dengan Skrip PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!