无法上传大于 8MB 的文件

Can't upload files bigger than 8MB

我正在尝试制作一个文件上传脚本,我已经为这个问题苦恼了一段时间。

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

这是我在 php 中尝试过的方法。初始值:

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

在 Apache 中我有:

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

我可能已经尝试过一些现在没有想到的东西。

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

P.S。我正在使用 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 ) 值。

最后,检查 RequestReadTimeout 设置。更多内容在 https://serverfault.com/a/260389

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

勾选 php.ini ini_set('max_execution_time', 0); //0