出於安全目的使用PHP 腳本傳輸檔案時,可下載檔案的絕對路徑往往需要隱藏。然而,傳統的 PHP 檔案傳輸腳本可能不支援斷點續傳,對終端用戶造成連線中斷的不便。
要啟用斷點續傳,可以執行以下步驟:採取:
以下是 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);
此腳本首先檢查是否發出了部分內容請求。如果是,它會解析 Range 標頭中的範圍,尋找文件中適當的偏移量,並發送請求的位元組範圍。該腳本還將 Accept-Ranges 標頭設定為字節,並在必要時為部分內容傳送適當的 HTTP 狀態碼。
透過實施這些措施,可以使用 PHP 檔案傳輸腳本支援可恢復下載,從而提供強大的解決方案用於在中斷後可以恢復的檔案傳輸。
以上是如何在 PHP 檔案傳輸腳本中啟用可斷點下載?的詳細內容。更多資訊請關注PHP中文網其他相關文章!