我使用Dropzone.js提交了一堆帶有其他表單元素的文件,在https://github.com/enyo/dropzone/wiki/Combine-normal-form-with-Dropzone上突出顯示,但是,在拖放多個不同文件時並提交表格,結果只有其中一個上傳。我也跟蹤上傳到我的數據庫中的文件,而且似乎取決於拖放到上傳區的文件數量,上傳單個文件的次數很多。例如:我將5個帶有diff文件名的diff圖像拖放到dropzone中,其中一個是'sunshine.jpg',結果'sunshine.jpg'被記錄在數據庫中5次。在進一步的探索中,我通過Chrome開發工具中的網絡面板發現,在請求頭中,只有一個文件被多次發送到數組中。經過一段時間的故障排除,沒有多大功效。任何見解,將不勝感激。Dropzone.js - 在多個文件上傳中只多次上傳一個文件
簡明的HTML:
<form action="" method="post" enctype="multipart/form-data" novalidate class="dropzone" id="mydropzone" name="create-form">
<div class="input-group" id="whatever">
<div id="dropzonePreview">
<div class="fallback">
<input name="file" type="file" multiple />
</div>
</div>
</div>
...Other form elements
<input style="margin-bottom:15px;" id="btn_main_2" type="button" name="create" value='<?php echo $create_button; ?>' class="btn btn-large btn-success">
</form>
的JavaScript:
Dropzone.options.mydropzone = {
url: 'Modules/global/module-fileuploads-dropzone.2.php',
addRemoveLinks: true,
autoProcessQueue: false,
autoDiscover: false,
paramName: 'file',
previewsContainer: '#dropzonePreview',
clickable: false,
uploadMultiple: true,
parallelUploads: 100,
maxFiles: 100,
accept: function(file, done) {
console.log("uploaded file");
done();
},
error: function(file, msg){
alert(msg);
},
init: function() {
var myDropzone = this;
$("#btn_main_2").on('click',function(e) {
e.preventDefault();
myDropzone.processQueue();
});
}
};
網絡日誌截圖:
你可以顯示你的控制器端代碼嗎? – Jenish
我以爲我已經提供了上述內容。你的意思是接收文件有效載荷並處理它們上傳的服務器端代碼?我認爲這與此無關,因爲問題出現在客戶端本身的某個地方,同樣的文件被多次附加到響應頭中的數組中,正如Chrome開發工具的網絡日誌所記錄的那樣。 –
'myDropzone.on(「addedfile」,function(file){ console.log(file); });'檢查這個文件是否正常上傳 – Jenish