Apabila memindahkan fail menggunakan skrip PHP untuk tujuan keselamatan, laluan mutlak fail boleh dimuat turun selalunya perlu disembunyikan. Walau bagaimanapun, skrip pemindahan fail PHP tradisional mungkin tidak menyokong muat turun boleh disambung semula, menyebabkan kesulitan bagi pengguna akhir yang mengalami gangguan sambungan.
Untuk mendayakan muat turun boleh disambung semula, langkah berikut boleh dilakukan diambil:
Di bawah ialah contoh pelaksanaan prinsip ini dalam PHP:
$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: ' . $filesize); header('Content-Disposition: attachment; filename="' . $fileName . '"'); header('Accept-Ranges: bytes'); print($data);
Skrip ini mula-mula menyemak sama ada permintaan kandungan separa telah dibuat. Jika ya, ia menghuraikan julat daripada pengepala Julat, mencari offset yang sesuai dalam fail dan menghantar julat bait yang diminta. Skrip juga menetapkan pengepala Accept-Ranges kepada bait dan menghantar kod status HTTP yang sesuai untuk kandungan separa jika perlu.
Dengan melaksanakan langkah-langkah ini, muat turun semula boleh disokong menggunakan skrip pemindahan fail PHP, menyediakan penyelesaian yang mantap untuk pemindahan fail yang boleh disambung semula selepas gangguan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendayakan Muat Turun Boleh Disambung semula dalam Skrip Pemindahan Fail PHP Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!