2016-01-29 59 views
2

當我初始化帶有文件的Dropzone時,知道maxFiles被設置爲1,我仍然能夠向dropzone添加1個額外的文件,之前我收到maxfilesexceeded錯誤。帶有文件的Init Dropzone不強加maxFiles的限制

這裏的懸浮窗初始化的樣本:

<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限制,除非用戶放棄文件,否則不會強制執行,但不會使用此初始化。

所以我錯過了什麼,或者它是一個錯誤?

回答

2

我遇到了同樣的問題,我通過將accepted: true添加到mockFile中解決了這個問題。

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