CodeIgniter上传大于5MB的PDF提示未选择文件错误如何解决?
排查解决步骤
- 首先确认PHP配置实际生效值
新建测试文件phpinfo.php,写入代码<?php phpinfo(); ?>,通过浏览器访问该页面,核对以下两个配置项:upload_max_filesize:确认是否已生效为200MBpost_max_size:该配置限制POST请求总大小,必须大于upload_max_filesize,建议设置为256MB
同时确认页面展示的「加载的php.ini文件路径」和你修改的配置文件路径一致,避免错改CLI模式的配置文件导致Web模式配置不生效。
- 检查Web服务的上传大小限制
你遇到的8MB就触发错误的情况,大概率是Web服务默认的上传限制未修改导致:- 若使用Nginx,需要在配置的http块、server块或对应站点的location块中添加配置
client_max_body_size 256M;,修改后重启Nginx生效 - 若使用Apache,检查是否配置了
LimitRequestBody,该值需要大于你要上传的文件大小,默认无限制但部分集成环境会手动设置阈值
- 若使用Nginx,需要在配置的http块、server块或对应站点的location块中添加配置
- 你的CodeIgniter上传配置无需调整
配置中$config['max_size'] = 1000000;的单位为KB,换算后约为976MB,完全满足200MB的上传需求,不需要修改。 - 可选调试验证
如果以上配置修改后仍然报错,可以在上传逻辑前加入代码var_dump($_FILES);exit;,上传超过8MB的文件如果输出的$_FILES为空,即可确定是上游服务截断了请求,导致PHP没有接收到上传的文件,才会触发「未选择文件上传」的报错。
内容的提问来源于stack exchange,提问作者adbury
相关产品推荐
相关产品推荐

