PHP スクリプトによる再開可能なダウンロードのサポート
質問:
PHP スクリプトを使用してダウンロード可能なファイルを送信する場合、エンド ユーザーはダウンロードを再開できません。このようなソリューションでは、再開可能なダウンロードをどのようにサポートできますか?
回答:
再開可能なダウンロードを有効にするには、次の手順に従います:
Accept-Range: バイトを送信しますheader:
ハンドル範囲ヘッダー:
部分的なコンテンツヘッダーを設定します:
リクエストが次の場合部分的なコンテンツ (Range ヘッダーが存在する) の場合は、次のヘッダーを設定します:
ファイル データを送信します:
部分的なコンテンツのダウンロードを実装する方法を示すサンプル 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: ' . $length); header('Content-Disposition: attachment; filename="' . $fileName . '"'); header('Accept-Ranges: bytes'); print($data);
このコードは、適切なヘッダーを設定し、要求されたファイル データ。再開可能なダウンロードをサポートします。
以上がPHP スクリプトで再開可能なダウンロードを有効にするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。