DropzoneJS将文件选择限制为一个文件,但允许后续上传

时间:2018-05-16 09:46:12

标签: javascript file-upload image-uploading dropzone.js

我正在尝试使用maxFiles选项将用户可以选择的文件数限制为一个:1;然而,这也阻止用户上传我想要的第二个,第三个等文件。我只想将选择限制为一个文件,并允许后续上传。这可能吗?

这是我的代码:

$(function() {
    var dropzone = new Dropzone('#avatar-wrapper', {
        url: '/uploads/avatar',
        clickable: '.upload',
        maxFilesize: 5,
        maxFiles: 1,
        previewsContainer: false,
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        },
        init: function() {
            this.on('addedfile', function(file) {
                console.log('test');
                $('#loader').show();
            });

            this.on('success', function(file, result) {
                $('#avatar_url').val(result.url);
                $('#avatar').attr('src', result.url);
                $('#loader').hide();
            });
        }
    });
});

2 个答案:

答案 0 :(得分:6)

代替修补DropZone库,您可以在初始化DropZone元素后在运行时进行此更改。

var dropzone = new DropZone('#avatar-wrapper', {
    // options ...
});
dropzone.hiddenFileInput.removeAttribute("multiple");

答案 1 :(得分:0)

在dropzone.js文件中找到了它:

if (_this3.options.maxFiles === null || _this3.options.maxFiles > 1) {
    _this3.hiddenFileInput.setAttribute("multiple", "multiple");
}

并注释掉第二行:

if (_this3.options.maxFiles === null || _this3.options.maxFiles > 1) {
    //_this3.hiddenFileInput.setAttribute("multiple", "multiple");
}

这解决了我的问题;但是,最好在DropzoneJs中实现这一点