使用文件初始化 Dropzone 不会施加 maxFiles 的限制

MMS*_*MSs 4 javascript jquery dropzone.js

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

这是 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>
Run Code Online (Sandbox Code Playgroud)

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

Dropzone 通常对我来说工作得很好,这只是 maxFiles 限制,除非用户删除文件,但不使用此初始化,否则不会强制执行。

那么我是否遗漏了一些东西,或者这是一个错误?

ale*_*ith 5

我有同样的问题,我通过添加accepted: true到模拟文件解决了它。

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