使用MULTER上传文件无法正常工作(nodejs)

我正在使用NodeJS高速(MVC),我想上传一个图像。 我试图将图像存储在上传文件夹中,但没有显示出来。 当我console.log(req.files),我得到以下(req.buffer打印出一个长的一系列双位数字和字母)。 我如何得到这个保存在文件夹中的图像?

[{fieldname:'file',originalname:'thumbnail.jpg',编码:'7bit',mimetype:'image / jpeg',buffer:,size:1347}]

HTML:

<form action="/bars/upload" method = 'post' enctype="multipart/form-data"> <label for='file'>Upload Image</label> <input type="file" name="file" accept="image/*"/> <input type="submit" name='submit' value="submit"/> </form> 

NODE JS

var multer = require('multer'); var upload = multer({dest:'../ public / uploads /'});

router.post('/ bars / upload',函数(req,res,next){
的console.log(req.files);
res.send(req.files); });

我有同样的问题。 我用Postman来查询我的节点应用程序。 问题解决了,当我删除HTTP头Content-Type(它被设置为urlencodedforms)。

multer基本上是一个中间件,可以上传文件或转换为稍后可以在处理程序中使用的格式。 所以,从例子中 ,你可以这样做你的情况:

 var multer = require('multer'); var upload = multer({ dest:'../public/uploads/' }); router.post('/bars/upload', upload.single('someFile') ,function (req, res, next) { // if you're here, the file should have already been uploaded console.log(req.files); console.log(req.body);// {"someParam": "someValue"} res.send(req.files); }); 

upload.html

 <form action="/bars/upload" method = 'post' enctype="multipart/form-data"> <label for='file'>Upload Image</label> <input type="file" name="someFile" accept="image/*"/> <input type="hidden" name="someParam" value="someValue"/> <input type="submit" name='submit' value="submit"/> </form> 

如果这不起作用,可以使用命令行进行debugging,这通常帮助我确定服务器或客户端是否有问题。

 curl --form "someFile=@/path/to/file" -X POST http://localhost:3000/bars/upload 

添加-I选项以显示详细的响应。