使用MULTER上传文件无法正常工作(nodejs)
我正在使用NodeJS express(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(它被设置为urlencoded形式)。
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>
如果这不起作用,您可以使用命令行进行调试,这通常可以帮助我确定服务器或客户端是否有问题。
curl --form "someFile=@/path/to/file" -X POST http://localhost:3000/bars/upload
添加-I
选项以显示详细的响应。
上一篇: uploading file using multer is not working fully (nodejs)