2017-06-21 18 views
0

我想有一種方式,以便用戶可以選擇圖像發送與審查。錯誤:意外的字段。從dropzone.js使用uploadMultiple

所以我用dropzone.js。似乎在一次請求中發送多個圖像時出現問題。我認爲req.files會包含一個文件數組,但這並沒有發生。現在我看到一個問題,因爲dropzone增加了[]與名稱參數裏面的索引。添加到圖像懸浮窗時

我看到請求負載是這樣的:

------WebKitFormBoundaryJOpGX6kWaoknKhIN 
Content-Disposition: form-data; name="images[0]"; filename="data.png" 
Content-Type: image/png 


------WebKitFormBoundaryJOpGX6kWaoknKhIN 
Content-Disposition: form-data; name="images[1]"; filename="loginButton.png" 
Content-Type: image/png 


------WebKitFormBoundaryJOpGX6kWaoknKhIN-- 

我覺得[0][1]引起我的問​​題

服務器:

app.post("/files" , upload.array("images"), (req, res) =>{ 
    console.log("hit here") 
    console.log("req.file :", req.file) 
    // console.log(req.body) 
    console.log(req.files) 
    res.send("ok") 
}) 

簡單Mulder:我之前有過更復雜的一件

var upload = multer({ dest: "./uploads" })

前端:

<script src = "/dropzone.js"></script> 
<script> 
    $(function(){ 
     Dropzone.autoDiscover = false; 
     var myDropZone = new Dropzone(".dropzone", { 
      url : "/files", 
      // uploadMultiple : true, 

      autoProcessQueue : false, 
      parallelUploads: 5, 
      paramName: "images", 
      uploadMultiple: true, 
      init : function(){ 
       this.on("success", function(){ 
        // alert("success") 
       }) 
       this.on("sendingmultiple", function(){ 
        console.log("SENDING MULTIPLE"); 
       }) 
       this.on("errormultiple", function(files, response){ 
        console.log("ERROR"); 
        console.log(response); 
        console.log(files); 
       }) 
      } 
     }) 
      $("#skip, #login").on("click", function(e){ 
       myDropZone.processQueue(); 
      }) 
    }) 

</script> 
<div class = "dropzone"></div> 
    <div id = "skip"> skip </div> 
    <div id = "login">login</div> 

當我擺脫uploadMultiple: true,我得到在FS的圖像,但它看起來像多POST請求作了沒有req.files陣列多個圖像。我以爲會有

回答

1

您應該能夠通過指定paramName而不是字符串的函數,迫使名稱:

paramName: function() { return 'images'; }, 

這將阻止任何後綴被添加到表單字段。

+0

這看起來非常好。我認爲我清楚地跟蹤了文檔,這讓我陷入困境。我不知道我應該使用一個函數。現在我看到'files'中的數組,我稍後再做更多測試時會接受這個答案。謝謝。這很有幫助。 –