セキュリティ目的で PHP スクリプトを使用してファイルを転送する場合、ダウンロード可能なファイルの絶対パス隠す必要があることが多い。ただし、従来の PHP ファイル転送スクリプトは再開可能なダウンロードをサポートしていない可能性があり、接続が中断されるエンド ユーザーに不便をもたらします。
再開可能なダウンロードを有効にするには、次の手順を実行します。 take:
以下は、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