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

本文介绍了如何解决通过PHP上传超过8M的大文件时遇到的问题,包括调整nginx的client_max_body_size参数及修改php.ini中的post_max_size参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天连续碰到了两个同事向我反应上传大文件(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 等参数值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值