当我使用其中的文件初始化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限制才会强制执行,除非用户删除了文件,但没有使用此初始化。
我错过了什么,还是错误?
答案 0 :(得分:3)
我遇到了同样的问题,我通过将accepted: true
添加到mockFile来解决它。
mockFile = {name: val, uploaded_name: val, accepted: true};