1

J'utilise Dropzone.js soumettre un tas de fichiers avec d'autres éléments de forme, comme l'a souligné le https://github.com/enyo/dropzone/wiki/Combine-normal-form-with-Dropzone, cependant, sur glisser plusieurs fichiers différents dans la zone de saut et en soumettant le formulaire, il s'avère que seul l'un d'entre eux est téléchargé. Je suis également en train de garder une trace des fichiers téléchargés dans ma base de données, et il semble que selon le nombre de fichiers glissés dans la zone de téléchargement, un seul fichier a été téléchargé autant de fois que nécessaire. E.g: Je fais glisser 5 images diff avec des noms de fichiers diff dans la dropzone, l'une d'entre elles étant 'sunshine.jpg', il s'avère que 'sunshine.jpg' a été enregistré dans la base de données 5 fois. À plus approfondir, j'ai découvert via le panneau de réseau dans les outils de développement Chrome, un seul fichier a été envoyé plusieurs fois dans un tableau dans l'en-tête de la demande. J'ai dépanné pendant un certain temps, à peu de frais. N'importe quelles idées seraient appréciées.Dropzone.js - le téléchargement de seulement 1 fichier plusieurs fois sur plusieurs fichiers télécharger

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

      }); 

      } 

     }; 

Capture d'écran du journal réseau:

Network Log - Request Header

+0

pouvez-vous afficher le code du côté de votre contrôleur? – Jenish

+0

Je pensais avoir déjà fourni ce qui précède. Voulez-vous dire le code côté serveur qui reçoit la charge utile des fichiers et les traite pour le téléchargement? Je pense que ce serait sans importance ici, puisque le problème surgit quelque part dans le client lui-même, avec le même fichier attaché plusieurs fois dans un tableau dans l'en-tête de réponse comme indiqué par le journal réseau des outils de développement de Chrome. –

+0

'myDropzone.on (" fichier ajouté ", fonction (fichier) { console.log (fichier); });' vérifier que le fichier est en train de télécharger correctement – Jenish

Répondre

0

Sur un dépannage plus approfondi, j'ai trouvé la solution à ce problème est considérablement simple:

paramName: 'file[]' 

au lieu de

paramName: 'file' 

puisque nous avons affaire à un tableau de fichiers dans ce cas. On dirait qu'on ne peut pas ignorer cela en spécifiant un tableau en tant que paramètre.

+0

Où mettez-vous cela? – Ryan