• 技术文章 >后端开发 >PHP问题

    php无法下载大文件怎么办

    藏色散人藏色散人2020-08-22 10:49:43原创753

    php无法下载大文件的解决办法:首先找到并打开“php.ini”文件;然后将“memory_limit”设置为1024M;接着将数据输出到客户端浏览器中即可。

    推荐:《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);

    上面的读取方式是一次性将数据输出到客户端浏览器中,难道跟这有关系?试着从文件中一行一行读取:

    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中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:php
    上一篇:typecho如何去掉index.php 下一篇:如何解决php undefined index错误问题
    大前端线上培训班

    相关文章推荐

    • php读取大文件的行数的方法• PHP如何实现断点续传大文件?• php上传大文件失败怎么办• PHP post大文件上传失败怎么办

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网