带文件的Init Dropzone不会强加maxFiles的限制

时间:2016-01-29 22:39:57

标签: javascript jquery dropzone.js

当我使用其中的文件初始化Dropzone时,知道maxFiles设置为1,在得到maxfilesexceeded错误之前,我仍然可以向dropzone添加1个附加文件。

以下是dropzone初始化的示例:

<div id="pdfs-dz" class="dropzone">
    <div class="dz-default dz-message">Drop PDFs here</div>
</div>

<script>
pdf_files = ['afile.pdf']

Dropzone.autoDiscover = false;

$('#pdfs-dz').dropzone({
    url: '/add-file/pdfs/',
    acceptedFiles: 'application/pdf',
    maxFilesize: 5,
    maxFiles: 1,
    error: function (file, response) {
        console.log('Upload failed');
        console.log(response);
        this.removeFile(file);
        $(file['previewElement']).remove();
    },
    init: function () {
        dz = this;
        pdf_files.forEach(function (val, index) {
            mockFile = {name: val, uploaded_name: val};
            dz.emit('addedfile', mockFile);
            dz.emit('complete', mockFile);
            $(dz.element).find('.dz-size').remove();
            dz.files.push(mockFile);
        });
    }
});
</script>

我当然在那里使用jQuery。 pdf_files中的文件列表是从后端生成的,我将maxFiles限制更改为1,以便更容易解释问题。

Dropzone通常对我来说效果非常好,只有这个maxFiles限制才会强制执行,除非用户删除了文件,但没有使用此初始化。

我错过了什么,还是错误?

1 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,我通过将accepted: true添加到mockFile来解决它。

mockFile = {name: val, uploaded_name: val, accepted: true};