1

我正在尝试使用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,就像插件的常见问题解答和关于 SO 的这个问题upload_max_file_size中描述的那样,但没有任何成功。我还在 GitHub 上发现了这个听起来很相似的问题,但它在没有任何实际输入的情况下就关闭了。memory_limit

除了摆弄php.ini设置之外,我对此一无所知。

4

1 回答 1

2

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

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

编辑:这就是您正在寻找的使用 jQuery-File-Upload、Apache 和 PHP 上传的 4GB HTTP 文件

于 2012-11-30T16:48:43.557 回答