PHPで大きなファイルを送信するために、独自のバージョンの単純なソリューションを作成しました。ファイルチャンクを使用します。このソリューションはさまざまなソースから保護されており、「チャンク」を実装するために次のコードをコピーして貼り付けました。
$handle = fopen($filename, 'rb');
while (!feof($handle))
{
print(@fread($handle, $chunksize));
ob_flush();
flush();
}
fclose($handle);
各チャンクをブラウザに送信するために使用print
するため、PHP スクリプトがエンコードされている文字エンコードに非常に敏感です。たとえば、スクリプトを に保存するとANSI
、ダウンロードしたファイルが破損していることに気付きました。でエンコードされたスクリプトを保存してアップロードする場合のみ、utf-8
ファイルは問題ありません。
スクリプトファイルのエンコーディングに依存しない同じことを行う(ファイルの一部をブラウザに送信する)よりも優れた機能はありprint
ますか?たとえば、ブラウザにバイナリ転送を強制するためですか?