上传图像,同时保留其他形式的数据
问题描述:
<form id="test-form" action="/upload" method="POST">
<input type="file" id="wizard-picture" name="picture">
<input name="first_name" type="text" class="form-control" placeholder="First Name">
</form>
app.post("/upload", function(req, res){
console.log(req.body);
});
我看到我的 “FIRST_NAME” 在req.body显示出来,而不是 “图片”。 我改变了enctype为“multipart/form-data”,并且一切都消失了。我得到了一个空的结果。我已经尝试了一些像Multer这样的软件包,我遵循了每一步,但它仍然无法正常工作。
我想同时上传图像和接收来自表单的其余数据。
答
对于文件上传,我建议使用Multer。为此,请参阅https://github.com/expressjs/multer。它处理文件上传的最佳方式。仅通过req.body获取图像将无法正常工作。在他们的GitHub上提供了Multer的示例。
Multer是一个中间件。但是我想在app.post(“xx”,function(req,res){here})中上传。有没有包可以做到这一点? – Pano
是的,Multer。然后调用app.post(“xx”,multer.smth(...),function(req,res){stuff})。然后,req变量包含所有文件数据,并且该文件存储在服务器上。 – NikxDa