2017-03-25 73 views
0

我已經寫了這個簡單的應用程序來測試multer上傳文件到我的服務器。我試圖用postman來測試這個選項,我選擇了form-data選項,在我的圖像中添加了一個鍵,並使用它旁邊的按鈕上傳圖像。該API被正確調用,但圖像無法上傳。Multer沒有上傳快速應用程序中的圖像

var express = require("express"); 
var app = express(); 
var multer = require('multer'); 

var upload = multer({ 
    dest: 'images/', 
}); 

app.post('/uploadchq', upload.any(), function(req, res, next) { 
    console.dir("file", req.file); 
    console.dir("files", req.files); 
    console.log("body", req.body); 
    next(); 
    res.sendStatus(200); 
}); 

app.listen(9999); 
console.log("listening to port", 9999); 

Multer創造我在dest場指定的圖像目錄,但req.filereq.filesreq.body所有的領域都是空的。我嘗試使用upload.single而不是any與鍵名作爲參數,但它仍然無法正常工作。問題是什麼 ?

編輯:在回覆Gaurav的評論。這是郵差的屏幕截圖。我已將密鑰名稱從chqImg更改爲fileScreenshot of postman

回答

0

我想通了,什麼是錯誤的。我只是取消選中郵遞員的郵箱字段,該郵件將Content-type設置爲multipart/form-data。但是,我無法理解爲什麼它不能使用它。

1

試試這個

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

var upload = multer({ 
    storage: storage 
}); 

app.post('/uploadchq', upload.fields([{ 
    name: 'file' 
}]), function(req, res, next) { 
    console.log("files", req.files.file); 
    console.log("body", req.body); 
}); 
+0

謝謝,但這是行不通的。它仍然顯示console.log(「files」,req.files.file)中的'req.files'未定義,圖像目錄中沒有任何內容。 – molecule

+0

你需要從包含_file_key和_fileobject_作爲值 – Gaurav

+0

客戶端發送'formData'是的,我已經做到了...仍然不工作..我已經更新了我的答案與郵遞員截圖。 – molecule