使用 jQuery File Upload 上传超过 1GB 到 2GB 的大文件 - blueimp(基于 Ajax)php / yii 它在 Firefox 浏览器中显示错误

Posted

技术标签:

【中文标题】使用 jQuery File Upload 上传超过 1GB 到 2GB 的大文件 - blueimp(基于 Ajax)php / yii 它在 Firefox 浏览器中显示错误【英文标题】:upload a large file over 1GB to 2GB using jQuery File Upload - blueimp (Ajax based) php / yii it showing error in Firefox Browser 【发布时间】:2016-03-06 12:17:08 【问题描述】:

我正在尝试使用jQuery File Upload - blueimp(基于Ajax)php / yii Framework 1.151GB 上的大文件上传到2GB 我已设置这些值以上传更大的文件

memory_limit = 2048M
upload_max_filesize = 2048M 
post_max_size = 2048M 

会话时间设置

ini_set('session.gc_maxlifetime', 7200);

我测试小于1GB的文件上传成功

当我尝试上传大于 1GB 的文件时,它会在 50 分钟上传时间后显示 Forbidden 错误...

服务器规格

它是一个虚拟机,由于它还没有生产,所以我们只 使用1CPU1GB memory,64 位

当我在Mozilla Firefox 中上传小于 300MB 的文件时,文件上传在 Google ChromeMicrosoft Edge(我已经测试过 1.15 和 1.88 GB 文件)中正常上传,但是当我尝试上传更大的文件时一段时间后,超过 300MB 的文件 Ajax 调用失败并给出500 Internal Server Error 标头响应在下图中

【问题讨论】:

那么您的服务器将成为问题,它会尝试将文件存储在内存中(您只有 1gig),我的建议是在具有更多内存的机器上使用 wamp 或 xampp 之类的东西并尝试 检查网络服务器错误日志。会有确切的错误。它可以是超时或大小限制。 检查你的yii配置的会话超时值,这也应该是7200。还要检查你登录用户的位置,在这个调用中你也可以set a timeout 好的@Harikrishnan 让我检查服务器日志 @Harikrishnan session.gc_maxlifetime 本地值 = 7200,主值 = 1440 session.cookie_lifetime 本地值 = 7200,主值 = 0 【参考方案1】:

当您上传大小超过 100 MB 的文件时,最好选择 chunked file uploads。 jQuery-File-Upload 支持这一点。

它将文件拆分为具有预定义块大小的较小片段,并逐个上传。另一个优点是您可以恢复文件上传。如果上传中断,无需再次上传整个文件。它还可以解决您的upload_max_filesizepost_max_size 问题。

【讨论】:

非常好的建议

以上是关于使用 jQuery File Upload 上传超过 1GB 到 2GB 的大文件 - blueimp(基于 Ajax)php / yii 它在 Firefox 浏览器中显示错误的主要内容,如果未能解决你的问题,请参考以下文章

jQuery File Upload文件上传插件简单使用

使用 Jquery File Upload 上传大(ish)文件

jQuery文件上传插件jQuery Upload File 有上传进度条

使用 cypress-file-upload 将文件上传到 jQuery.filer 不起作用

使用Jquery File Upload上传multipart formData

jQuery File Upload 单页面多实例的实现