ホームページ >バックエンド開発 >PHPの問題 >PHPで大きなファイルをダウンロードできない場合の対処法

PHPで大きなファイルをダウンロードできない場合の対処法

藏色散人
藏色散人オリジナル
2020-08-22 10:49:432907ブラウズ

php が大きなファイルをダウンロードできない問題の解決策: まず「php.ini」ファイルを見つけて開き、次に「memory_limit」を 1024M に設定し、データをクライアントのブラウザに出力します。

PHPで大きなファイルをダウンロードできない場合の対処法

推奨: 「PHP ビデオ チュートリアル

大きなファイルをダウンロードできない問題を解決するPHP の使用

実際のアプリケーションでは、PHP の fread() 関数を使用してサーバー ファイルを読み取るときにサイズ制限があります。サーバーのファイルサイズが一定量(128M?)を超えると、クライアントのブラウザはファイルをダウンロードできなくなります。設定ファイルphp.iniのmemory_limit制限が原因でしょうか?

memory_limit を 1024M に設定した後、180M ファイルをテストしましたが、問題が残ることがわかりました。コード:

header('content-type:application/octet-stream');
            header('accept-ranges: bytes');
            header('content-length: '.filesize($filePath));
            header('content-disposition:attachment;filename='.$fileName);
            $fp = fopen($filePath, "r");
            echo fread($fp, filesize($filePath));
            fclose($fp);

上記の読み取り方法は、データをクライアントのブラウザに一度に出力します。 . それと何か関係があるのでしょうか?ファイルを 1 行ずつ読んでみてください:

header('content-type:application/octet-stream');
            header('accept-ranges: bytes');
            header('content-length: '.filesize($filePath));
            header('content-disposition:attachment;filename='.$fileName);
            $fp = fopen($filePath, "r");
            while(!feof($fp)) {
                echo fgets($fp, 4096);
            }
           fclose($fp);

ああ!もう問題ありません。

以上がPHPで大きなファイルをダウンロードできない場合の対処法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。