maxNumberOfFiles选项在jquery文件上载程序中不起作用

maxNumberOfFiles选项在jquery文件上载程序中不起作用,jquery,jquery-file-upload,Jquery,Jquery File Upload,我似乎无法限制可以上传的文件数量。 我使用拖放方法和搜索浏览器的方法。 在wiki中,我读到有必要使用maxNumberOfFiles选项并删除multiple属性,但它不会改变,总是可以删除多个文件。 除了代码外,我找不到有关maxNumberOfFiles选项的信息 剧本 我认为问题出在getNumberOfFiles实现中: maxNumberOfFiles选项取决于getNumberOfFiles选项, 它由UI和AngularJS实现定义。 如果您不使用UI或AngularJS版本

我似乎无法限制可以上传的文件数量。

我使用拖放方法和搜索浏览器的方法。 在wiki中,我读到有必要使用maxNumberOfFiles选项并删除multiple属性,但它不会改变,总是可以删除多个文件。 除了代码外,我找不到有关maxNumberOfFiles选项的信息

剧本
我认为问题出在getNumberOfFiles实现中:

maxNumberOfFiles选项取决于getNumberOfFiles选项, 它由UI和AngularJS实现定义。


如果您不使用UI或AngularJS版本,则必须将getNumberOfFiles实现为返回当前文件数的函数,例如:

我认为问题在于getNumberOfFiles实现:

maxNumberOfFiles选项取决于getNumberOfFiles选项, 它由UI和AngularJS实现定义。


如果您不使用UI或AngularJS版本,则必须将getNumberOfFiles实现为一个返回当前文件数的函数,例如:

我遇到了相同的问题,最后使用了以下方法:

将singleFileUploads设置为false:这确保如果用户删除3个文件,则不会使用一个文件调用add 3次,而是使用三个文件调用add 1次

然后您可以在add参数中处理自己的文件数

以下是我在dropzone中删除多个文件时所做的操作,这些文件的背景为闪烁的红色:

$('.fileToUpload').each(function () { // Multiple input file
    $(this).fileupload({
        url: '...',
        dataType: 'json',
        dropZone: $(this),
        singleFileUploads: false,
        add: function (e, data) {
            var targetName = data.paramName;
            $('#'+targetName+'Dropzone').removeClass('hover');
            if (data.files.length > 1) {
                $('#'+targetName+'Dropzone').addClass('dropzone-error');
                setTimeout("$('#"+targetName+"Dropzone').removeClass('dropzone-error')",300);
                return;
            }
            var jqXHR = data.submit(); // Catching the upload process of every file
            $('#'+targetName+'Cancel').on('click',function(e){
                  jqXHR.abort();
            });
        },
        ...

我也有同样的问题,最后还是这样做了:

将singleFileUploads设置为false:这确保如果用户删除3个文件,则不会使用一个文件调用add 3次,而是使用三个文件调用add 1次

然后您可以在add参数中处理自己的文件数

以下是我在dropzone中删除多个文件时所做的操作,这些文件的背景为闪烁的红色:

$('.fileToUpload').each(function () { // Multiple input file
    $(this).fileupload({
        url: '...',
        dataType: 'json',
        dropZone: $(this),
        singleFileUploads: false,
        add: function (e, data) {
            var targetName = data.paramName;
            $('#'+targetName+'Dropzone').removeClass('hover');
            if (data.files.length > 1) {
                $('#'+targetName+'Dropzone').addClass('dropzone-error');
                setTimeout("$('#"+targetName+"Dropzone').removeClass('dropzone-error')",300);
                return;
            }
            var jqXHR = data.submit(); // Catching the upload process of every file
            $('#'+targetName+'Cancel').on('click',function(e){
                  jqXHR.abort();
            });
        },
        ...

我发现使用一个简单的计数器对我有效

var maxFiles = 1;
var counter = 0;
$('#fileupload').fileupload({
    url: '/uploadUrl',
    add: function (e, data) {
        if(counter < maxFiles){
            counter++;
        }else
            return false;
    }
 });

我发现使用一个简单的计数器对我有效

var maxFiles = 1;
var counter = 0;
$('#fileupload').fileupload({
    url: '/uploadUrl',
    add: function (e, data) {
        if(counter < maxFiles){
            counter++;
        }else
            return false;
    }
 });

我按照Irvin Dominin说的做了,但即使插入jquery.fileupload-ui.js,仍然无法工作

调试后,我发现getNumberOfFiles无法工作,因为这两个文件的顺序不同。 jquery.fileupload-validate.js和jquery.fileupload-ui.js

将jquery.fileupload-ui.js文件放在jquery.fileupload-validate.js解决我的问题之后


希望它能对有同样问题的人起作用。

我按照Irvin Dominin所说的做了,但即使插入jquery.fileupload-ui.js,仍然不起作用

调试后,我发现getNumberOfFiles无法工作,因为这两个文件的顺序不同。 jquery.fileupload-validate.js和jquery.fileupload-ui.js

将jquery.fileupload-ui.js文件放在jquery.fileupload-validate.js解决我的问题之后


希望它能对有同样问题的人起作用。

谢谢你的帮助。我必须添加jquery.fileupload ui.js吗?谢谢你的帮助。我必须添加jquery.fileupload-ui.js吗?