使用 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.15
将1GB
上的大文件上传到2GB
我已设置这些值以上传更大的文件
memory_limit = 2048M
upload_max_filesize = 2048M
post_max_size = 2048M
会话时间设置
ini_set('session.gc_maxlifetime', 7200);
我测试小于1GB
的文件上传成功
当我尝试上传大于 1GB
的文件时,它会在 50 分钟上传时间后显示 Forbidden 错误...
服务器规格
它是一个虚拟机,由于它还没有生产,所以我们只 使用1CPU
和1GB memory
,64 位
当我在Mozilla Firefox
中上传小于 300MB 的文件时,文件上传在 Google Chrome
和 Microsoft 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_filesize
和post_max_size
问题。
【讨论】:
非常好的建议以上是关于使用 jQuery File Upload 上传超过 1GB 到 2GB 的大文件 - blueimp(基于 Ajax)php / yii 它在 Firefox 浏览器中显示错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 Jquery File Upload 上传大(ish)文件
jQuery文件上传插件jQuery Upload File 有上传进度条
使用 cypress-file-upload 将文件上传到 jQuery.filer 不起作用