blueimp文件上传插件中的maxFileSize?

时间:2015-03-16 14:40:15

标签: jquery-file-upload blueimp

我实现了这个插件完全开箱即用,文件限制为2mb,强制服务器端有错误响应。它很棒。

然后我被要求将文件大小限制为5mb。

我尝试了所有可以尝试的东西。我只是无法让插件对大于4.2mb的文件做任何事情。

没有错误,它只是对大于4.2mb的文件没有任何作用。

目前的代码:

 $('#fileupload').fileupload({

            type: "POST",

            add: function (e, data) {
                if (files < 5) {

                    var errs = [];
                    var acceptFileTypes = /(\.|\/)(gif|jpe?g|png)$/i;
                    var maxFileSize = 5242880;

                    // Validate file
                    $.each(data.files, function (index, file) {
                        if (file.type.length && !acceptFileTypes.test(file.type)) {
                            errs.push('Selected file "' + file.name + '" is not alloawed. Invalid file type.');
                        }
                        if (this['size'] > maxFileSize) {
                            errs.push('Selected file "' + file.name + '" is too big, ' + parseInt(file.size / 1024 / 1024) + 'M.. File should be smaller than ' + parseInt(maxFileSize / 1024 / 1024) + 'M.');
                        }
                    });

                    // Output errors or submit data
                    if (errs.length > 0) {
                        alert('An error occured. ' + errs.join(" "));
                    } else {
                        data.context = $('<p/>').text('Uploading...').appendTo($('.currUploadDiv ul'));
                        data.submit();
                        removeFileUploadLabel();
                        files++;
                        if (files > 0) {
                            $('.fileName').html(files + ' of 5 uploads selected.')
                        } else {
                            $('.fileName').html('Select a file.');
                        }
                    }


                    //data.submit();

                   // return;
                } else {
                    $('.fileName').html('Maximum number of files selected.');
                };
            },
            success: function (e, data) {
                //ToDo- check response for too many files uploaded.


            },
            done: function (e, data) {

                data.context.text(data["_response"]["result"]["message"]);
            },
            error: function (e, data) {
                console.log(e);
            }
        });

我已按正确的顺序包含必要的.js文件(如前一个关于MaxFileSize的答案所示......)

我错过了什么?

1 个答案:

答案 0 :(得分:0)

这是故意设计我害怕,以下内容来自插件FAQ: -

最大文件大小限制是多少?

可以使用jQuery File Upload插件上传最大 4 GB 的文件。 通过使用Chunked文件上传(块大小小于4GB),潜在的文件大小是无限的。 4 GB的限制是由于某些浏览器的限制,可能会在将来对这些浏览器的更新中修复。

https://github.com/blueimp/jQuery-File-Upload/wiki/Frequently-Asked-Questions

所以你需要的是以块的形式上传你的文件。您可以使用maxChunkSize选项设置块大小,如下所示: -

$('#fileupload').fileupload({
    maxChunkSize: 10000000 // 10 MB
});

请注意,这不适用于所有浏览器(旧版本的IE I&#39;正在看着你!)

请参阅以下链接以获取相关帮助。

https://github.com/blueimp/jQuery-File-Upload/wiki/Chunked-file-uploads