PHP での大規模ファイルの信頼性の高いダウンロード
PHP では、大規模なファイルをシームレスに転送することが課題となります。ダウンロード中のファイルの整合性を確保するには、従来のファイル読み取り (fread) アプローチに代わる方法を検討することが重要です。
ファイル転送を改善するオプション
http_send_file などの関数の利用を検討してください。および http_send_data 。これらの関数はファイル送信をより効率的に処理し、fread の使用に関連する問題を解決できる可能性があります。
ファイルのチャンク化
より専門的なオプションが利用できない場合は、ファイルのチャンク化が実用的な解決策です。 。ファイルを小さなセグメントに分割することで、PHP はファイルを段階的に送信できるため、エラーのリスクが軽減されます。次のコードは、この手法を実装する方法を示しています。
$chunksize = 5 * (1024 * 1024); // 5 MB per chunk if (file_exists($filename)) { header('Content-Length: ' . filesize($filename)); if (filesize($filename) > $chunksize) { $handle = fopen($filename, 'rb'); while (!feof($handle)) { print(@fread($handle, $chunksize)); ob_flush(); flush(); } fclose($handle); } else { readfile($path); } exit; } else { echo 'File "' . $filename . '" does not exist!'; }
ダウンロード プロセス中の破損を避けるために、ファイルが UTF-8 エンコードで保存されていることを確認してください。
以上がPHP で大きなファイルを確実にダウンロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。