Dropzone.jsを使用して、他のフォーム要素を含むファイルをsubmitするときはhttps://github.com/enyo/dropzone/wiki/Combine-normal-form-with-Dropzoneにハイライトされていますが、フォームを送信すると、そのうちの1つだけがアップロードされていることがわかります。私は自分のデータベースにアップロードされたファイルを追跡しており、アップロードのためにドロップゾーンにドラッグされたファイルの数に応じて、1つのファイルが何度もアップロードされているようです。例:diffファイル名の5つの差分画像をdropzoneにドラッグします。そのうちの1つが「sunshine.jpg」で、「sunshine.jpg」がデータベースに5回記録されています。さらに調査すると、Chromeの開発ツールのネットワークパネルから、要求ヘッダーの配列に複数のファイルが1回だけ送られていることがわかりました。あまり役に立たないため、しばらくの間トラブルシューティングを行っています。どんな洞察にも感謝します。Dropzone.js - 複数のファイルアップロードで複数のファイルを1回だけアップロードする
要約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 Devツールのネットワークログに記載されているレスポンスヘッダーの配列に同じファイルが複数回アタッチされているため、ここでは無関係です。 –
'myDropzone.on(" addedfile "、function(file)){ console.log(file); });これがファイルが正しくアップロードされていることを確認してください – Jenish