セキュリティ目的で 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 中国語 Web サイトの他の関連記事を参照してください。