【发布时间】:2014-04-16 18:14:53
【问题描述】:
我正在使用 JQuery File Upload 将大文件上传到带有 PHP 后端的 NGINX 服务器。上传适用于最大和大约 2GB 的文件,但大约 6 或 8GB 的较大文件会到达末尾,但会显示以下错误消息
The uploaded file was only partially uploaded
我已经更新了我的 nginx.conf:
http {
sendfile on;
keepalive_timeout 65;
server {
...
client_max_body_size 20000000M;
...
}
}
还有我用于 php-fpm 的 php.ini:
memory_limit = 512000000M
upload_max_filesize = 0
post_max_size = 200000M
max_execution_time = 4320000
max_input_time = 4320000
在所有情况下,文件上传都需要不到一个小时才能完成。
这是 Chrome 的 Inspect Element 输出:
【问题讨论】:
-
Hן Ben 我怀疑你的 php.ini 设置 - 你能描述一下你使用 CMS 的服务器吗?尝试在所有关键设置中添加一个 ini get,以确保在上传开始之前您的服务器遵循它们。
-
还可以尝试在文件上传之前使用
ini_set(),并取消session.gc_maxlifetime、session.cookie_lifetime、session.cache_expire的限制。最后一件事尝试将限制设置为upload_max_filesize,这不是无限的。 -
我正在使用带有 php-fpm 的 NGINX 服务器。 @ShlomiHassid
-
我在 ini_set('session.gc_maxlifetime', 9999999999999999); ini_set('session.cookie_lifetime', 9999999999999999); ini_set('session.cache_expire', 9999999999999999);并将 upload_max_filesize 设置为 500000000M 但看到同样的错误。
-
真的很好奇,如何在开发中准确地测试 2.0 GB 文件上传而无需等待时间??
标签: php jquery file-upload nginx jquery-file-upload