2016-03-03 1 views
3

De dropzone.js:ne peut pas envoyer plusieurs fichiers en utilisant dropzone et multer

Si vous avez la possibilité uploadMultiple définie sur true, puis Dropzone ajoutera [] au nom.

donc pour multer, array ('fichier') ne fonctionnera pas parce fieldname: 'file[0]'

Et si je télécharge plusieurs fichiers, il sera fieldname: 'file[0]'fieldname: 'file[1]' ....

je dois utiliser upload.any(), est-il possible de faire du hook post-upload dans multer?

+0

Toute solution à ce serait bien apprécié. – NikxDa

Répondre

1

S'il vous plaît utiliser ci-dessous

HTML:

<form action="/uploadImages" id="buldUploadForm" enctype="multipart/form-data" method="post"> 
    <div class="dropzone dz-clickable" id="uploadDropzone"> 
     <div class="dz-default dz-message" data-dz-message=""> 
      <span>Drop files here to upload</span> 
     </div> 
    </div> 
    <br /> 
    <input type="submit" class="btn btn-primary" id="submitAllProcess" value="Upload Images" name="submit" /> 
</form> 

JAVASCRIPT:

Dropzone.autoDiscover = false; 

function paramNameForSend() { 
    return "userParamName"; 
} 

$(document).ready(function() { 
    var myDropzone = new Dropzone("#uploadDropzone", { 
    url: '/uploadImages', 
    maxFilesize: 5, // MB 
    maxFiles: 10, 
    autoProcessQueue: false, 
    uploadMultiple: true, 
    paramName: paramNameForSend, 
    method: 'post', 
    parallelUploads: 10, 
    init: function() { 
     var myDropzone = this; 

     $("#buldUploadForm").submit(function (e) { 
      e.preventDefault(); 
      e.stopPropagation(); 
      myDropzone.processQueue(); 
     }); 
     } 
    }); 
}); 

Multer:

var storage = multer.diskStorage({ 
    destination: function (req, file, callback) { 
    callback(null, './uploads'); 
    } 
}); 

var uploadMultiple = multer({ storage : storage}).array('userParamName', 10);