0

私のシステム メモリは 128M で、memory_limit を 128M に設定しています。php fread を使用して 150M サイズを超えるファイルをダウンロードできますか? 私はしないようにしました!110M前後のみダウンロード可能!

皆さんありがとう、

    $sent = 0;
    $blocksize=(2 << 20);

    $fp = fopen($download_path, "rb");
    while($sent < $size){
        echo fread($fp, $blocksize);
        $sent += $blocksize;
    }
    exit(0);

このように使うのですが、どうすればいいですか?

4

1 に答える 1

2

はい、それらすべてを完全にメモリに読み込もうとしない場合。要件が許せば、ファイルをチャンクで読み取り、それらのチャンクを一度に 1 つずつ処理する必要があります。これは、何をしていても、RAM の量に関係なく、一般的には良い考えです。

于 2013-02-26T09:24:24.930 に答える