无法上传大于 8MB 的文件


Can't upload files bigger than 8MB

我正在尝试制作文件上传脚本,我一直在为这个问题而苦苦挣扎。

我已经阅读并尝试了与此相关的所有SO答案,但无济于事。

这是我在 php.ini 中尝试的内容:

file_uploads = On
upload_max_filesize = 100M
post_max_size = 100M
memory_limit = 100M

在阿帕奇中,我有:

<Directory /var/www/uploads>
php_value upload_max_filesize 10G
php_value post_max_size 10G
</Directory>

我可能尝试了其他现在没有想到的东西。

我还想提一下,8MB以下的所有内容都可以毫无问题地上传。超时也不是问题,因为上传在几秒钟内失败。

附言我正在使用Cloudflare。会不会是这阻止了我的上传?

通过创建一个包含 phpinfo() 的 test.php 文件来确认你的 PHP.ini 位置。

接下来,检查您的 Apache (LimitRequestBody 指令*) 和 php.ini (upload_max_filesize) 限制,因此通常这些限制设置得更高。值以字节为单位。

Apache 2.0 的默认上传大小为 524288,位于 php "include file"/etc/httpd/conf.d/php.conf 中,要覆盖此值,请将以下指令放在 httpd.conf 虚拟主机指令中:

<Files *.php>
LimitRequestBody 30000000
</Files>

(此示例将请求正文限制为 30M)

Apache 1.3 没有这个默认值,所以你通常只需要更改 php.ini (upload_max_filesize,post_max_size) 值和 config.ini (maxuploadfilesize) 值。

最后,检查请求读取超时设置。更多内容 https://serverfault.com/a/260389

有时会出现执行时间问题,使用 set_time_limit(0);

检查 php.iniini_set('max_execution_time', 0);0