无法上传大于100KB的文件,LAMP(Fedora27)环境求助
解决LAMP环境下大文件上传失败(单文件>100KB报错)的问题
你已经排除了PHPMailer的问题,而且返回值"2"确实对应PHP的UPLOAD_ERR_FORM_SIZE错误,我来帮你梳理几个容易忽略的排查点:
1. 检查前端表单的MAX_FILE_SIZE限制
返回值"2"最常见的原因是表单里的隐藏字段限制了文件大小。看看你的前端代码里有没有类似这样的字段:
<input type="hidden" name="MAX_FILE_SIZE" value="102400">
这个值是以字节为单位的,102400刚好是100KB,和你遇到的限制完全匹配。如果有,把这个值调高到你需要的大小(比如2097152对应2M)。
2. 确认PHP配置的所有相关参数(并重启服务)
你提到已经调整了php.ini,但要确保以下几个核心参数都配置正确,而且修改后必须重启Apache或PHP-FPM才能生效:
upload_max_filesize = 2M:单个上传文件的最大大小,设得比你要传的目标文件大post_max_size = 3M:POST请求的总大小(包含文件和其他表单数据),必须大于upload_max_filesizememory_limit = 16M:PHP进程的内存限制,大文件上传需要足够内存处理max_execution_time = 300:上传大文件需要更长的执行时间,避免超时中断
另外还要留意局部配置是否覆盖了全局设置:
- 虚拟主机配置里的
php_value指令 - 网站根目录下
.htaccess文件中的类似配置(比如php_value upload_max_filesize 100K)
3. 检查Apache的请求大小限制
Fedora上的Apache默认可能通过LimitRequestBody指令限制POST请求的总大小,默认值通常是1048576(1M),如果你的文件接近或超过这个值,会直接被Apache拦截。
修改这个配置(在httpd.conf或虚拟主机配置文件中):
LimitRequestBody 2097152
(2097152对应2M,可根据你的需求调整),然后重启Apache服务:
sudo systemctl restart httpd
4. 验证配置是否生效
可以创建一个phpinfo.php文件,内容如下:
<?php phpinfo(); ?>
访问这个页面,搜索upload_max_filesize、post_max_size等参数,确认它们的值是你设置的新值,避免因为配置文件路径错误或服务未重启导致配置未生效。
内容的提问来源于stack exchange,提问作者hikerdave
相关产品推荐
相关产品推荐

