jQuery-File-Upload插件重置为2.1GB

时间:2012-11-30 16:44:20

标签: php jquery jquery-plugins file-upload

我正在尝试使用 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_sizeupload_max_file_sizememory_limit的设置,如插件的 FAQ { {3}} 在SO上但没有任何成功。我还发现GitHub上的 this question 听起来很相似,但它在没有任何实际输入的情况下关闭了。

除了摆弄php.ini设置外,我对此无能为力。

1 个答案:

答案 0 :(得分:2)

检查服务器操作系统和文件系统是否支持该大文件。非常旧的32位系统存在2GB及以上的问题。我还怀疑32位框架可能将内部计数器定义为32位有符号整数。

这只是计算机基础的简单猜测,但值得尝试

编辑:这就是您要找的4GB HTTP File Uploads Using jQuery-File-Upload, Apache and PHP