【问题标题】:JQuery File Upload to NGINX/PHP server fails when over 1.5GBJQuery 文件上传到 NGINX/PHP 服务器超过 1.5GB 时失败
【发布时间】: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_maxlifetimesession.cookie_lifetimesession.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


【解决方案1】:

这与 php.ini 或 jquery 上传器无关。

只需密切监视您的系统资源以接近解决方案:

  1. 上传的文件保存在临时文件夹中(密切监控)。
  2. 您的系统 RAM 资源。
  3. 您的系统存储容量。

除了这些可能性之外,检查您的主机/环境是否截断了长 POST 请求(按时间或传输的数据量)

【讨论】:

  • 感谢服务器资源很好。我可能会尝试更改 tmp 文件夹,但奇怪的是它适用于 1.6GB 的文件
  • 超时和keepalive_timeout设置是否影响大上传?
  • 是的,他们确实尝试将它们设为 -1 ;)
【解决方案2】:

在上传大小超过 2gb 的文件时,PHP 5.3 出现问题。如果我没记错的话,它已在 PHP 5.4 中解决。

【讨论】:

  • 我在服务器上运行 PHP 5.4.25。
【解决方案3】:

您是否尝试过使用纯格式上传文件? 例如:

<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>

另外我会尝试在本地设置一个 nginx 服务器以减少上传时间。如果仍然失败,您可以排除超时甚至文件系统/磁盘问题。

【讨论】:

    猜你喜欢
    • 2017-11-06
    • 2016-09-26
    • 2015-11-24
    • 2021-07-24
    • 1970-01-01
    • 2015-07-05
    • 2011-05-23
    • 1970-01-01
    • 2015-05-26
    相关资源
    最近更新 更多