1

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(); 

      }); 

      } 

     }; 

スクリーンショット:この問題はかなりあると

Network Log - Request Header

+0

コントローラのサイドコードを表示できますか? – Jenish

+0

私はすでに上記を提供していると思いました。ファイルのペイロードを受信し、アップロードのためにそれらを処理するサーバー側のコードを意味しますか?クライアント側のどこかに問題が発生しているため、Chrome Devツールのネットワークログに記載されているレスポンスヘッダーの配列に同じファイルが複数回アタッチされているため、ここでは無関係です。 –

+0

'myDropzone.on(" addedfile "、function(file)){ console.log(file); });これがファイルが正しくアップロードされていることを確認してください – Jenish

答えて

0

さらにトラブルシューティングでは、私は解決策を見つけました単純:

代わりに

paramName: 'file' 

paramName: 'file[]' 

我々は、この場合のファイルの配列を扱っているからです。配列をパラメータとして指定している間は無視できないように見えます。

+0

あなたはこれをどこに置いていますか? – Ryan

関連する問題