我正在尝试使用 jQuery-File-Upload 插件为大型文件实现简单的分块文件上传。我将GitHub-repo克隆到一个文件夹中并将我的main.js
更改为以下内容:
$('#fileupload').fileupload({
maxChunkSize: 10000000,
add: function (e, data) {
var that = this;
$.getJSON('server/php/', {file: data.files[0].name}, function (file) {
data.uploadedBytes = file && file.size;
$.blueimp.fileupload.prototype.options.add.call(that, e, data);
});
}
});
如文档中所述。这适用于高达2GB的文件(我可以在控制台和服务器上看到分块),但当我尝试上传大于2.1GB的文件时,会发生以下情况:最后一块数据将正确附加到现有文件myUpload.file
然后脚本将开始编写一个新文件myUpload.file (1)
,从头开始,不会抛出任何错误,无论是客户端还是服务器端。当第二个文件达到2.1GB的大小时也会发生同样的情况。文件的进度计数器将被重置,而整个进度计数器将溢出并告诉我,我已完成142%(并且正在计数)。
我在服务器端运行PHP 5.3.5。
我已经尝试过设置max_post_size
,upload_max_file_size
和memory_limit
的设置,如插件的 FAQ 和 { {3}} 在SO上但没有任何成功。我还发现GitHub上的 this question 听起来很相似,但它在没有任何实际输入的情况下关闭了。
除了摆弄php.ini
设置外,我对此无能为力。
答案 0 :(得分:2)
检查服务器操作系统和文件系统是否支持该大文件。非常旧的32位系统存在2GB及以上的问题。我还怀疑32位框架可能将内部计数器定义为32位有符号整数。
这只是计算机基础的简单猜测,但值得尝试
编辑:这就是您要找的4GB HTTP File Uploads Using jQuery-File-Upload, Apache and PHP