PHP スクリプトを介して受信者に大規模なファイルを送信する場合、転送の整合性が懸念されることがあります。これに対処するために、PHP は http_send_file や http_send_data などのメソッドを提供していますが、特定のシナリオにおけるそれらの有効性は依然として不確かです。
優れたソリューション: ファイルのチャンク化
最も効率的で、 PHP での直接的なアプローチには、ファイルをチャンク化することが含まれます。このプロセスでは、ファイルが小さなセグメントに分割され、一貫性と信頼性の高いダウンロード プロセスが保証されます。次のコードは、この方法の例です。
$chunksize = 5 * (1024 * 1024); //5 MB per chunk $handle = fopen($filename, 'rb'); while (!feof($handle)) { print(@fread($handle, $chunksize)); ob_flush(); flush(); } fclose($handle);
ファイルをセグメント化することで、PHP はメモリの過負荷を回避し、2GB を超える大きなファイルでもよりスムーズな転送を可能にします。ただし、ダウンロード中のファイルの破損を防ぐために、ファイルが UTF-8 でエンコードされていることを確認することが重要です。
以上がPHP で大規模ファイルを確実にダウンロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。