為安全目的使用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 檔案傳輸腳本支援可恢復下載,從而提供強大的解決方案用於中斷後可以恢復的檔案傳輸。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3