2017-03-25 5 views
0

나는이 간단한 응용 프로그램을 작성하여 내 서버에 파일을 업로드하는 멀터를 테스트했습니다. form-data 옵션을 선택하고 내 이미지에 키를 추가 한 다음 옆에있는 버튼을 사용하여 이미지를 업로드 한 우편 배달부를 사용하여이를 테스트하려고합니다. API가 제대로 호출되지만 이미지가 업로드되지 않습니다. 모든 필드Multer 님이 express 앱에 이미지를 업로드하지 않았습니다.

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.file, req.files, req.body는 비어 있습니다. 매개 변수로 키 이름을 사용하여 any 대신 upload.single을 사용해 보았지만 여전히 작동하지 않습니다. 문제가 무엇입니까?

편집 : Gaurav 님의 의견에 응답합니다. 여기 우편 배달부의 스크린 샷이 있습니다. chqImg에서 file으로 키 이름을 변경했습니다. Screenshot of postman

답변

0

내가 잘못 무엇인지 파악하십시오. 나는 방금 Content-typemultipart/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_ 인 클라이언트에서 formData를 보내야합니다. – Gaurav

+0

예. 그래도 작동하지 않습니다. 여전히 우편 배달부 스크린 샷으로 답변을 업데이트했습니다. – molecule

관련 문제