PHP代码中使用post参数上传大文件

Posted 追忆丶年华

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP代码中使用post参数上传大文件相关的知识,希望对你有一定的参考价值。

今天连续碰到了两个同事向我反应上传大文件(8M)失败的事情!

都是在php代码中通常使用post参数进行上传文件时,当文件的大小大于8M时,上传不能不成功。

首先,我想到了nginx的client_max_body_size参数,这个参数限定了nginx接收的http请求的body的最大值。在nginx.conf配置文件中client_max_body_size设置的值是8M。增大该值,reload nginx之后重新测试。如果文件仍然不能上传,这时引起该错误的原因最大的可能性与php的配置有关。

查看php的错误日志,里面的记录如下

PHP Warning: POST Content-Length of 8947356 bytes exceeds the limit of 8388608 bytes in Unknown on line 124

提示很明显,POST参数最大值也是8388608bytes(8M),修改php.ini中的post_max_size参数值,重启php-fpm服务进程,即可解决问题。

另外需要注意php.ini配置文件中的file_uploads、upload_max_filesize、memory_limit 等参数值。

以上是关于PHP代码中使用post参数上传大文件的主要内容,如果未能解决你的问题,请参考以下文章

php 上传大文件主要涉及配置upload_max_filesize和post_max_size两个选项

PHP 快速实现大文件上传

php大文件上传

配置php上传大文件

php上传大文件的解决方案

php实现大文件上传带进度条