我正在创建一个表单以上载图像,同时此表单包含其他字段。问题是,当我试图用req.body
获取表单数据时,有一个未定义的。你知道为什么吗?使用enctype="multipart/form-data"
时无法获得其他输入?
最佳答案
您可以使用multiparty模块,如下所示
var multiparty = require('multiparty');
exports.parseForm = function (req, res) {
var form = new multiparty.Form();
form.parse(req, function(err, fields, files) {
//here you can read the appropriate fields/files
});
};
还要确保在html中正确设置了
enctype
。<form role='form' method='post' enctype="multipart/form-data">
当我使用它时,它是通过html表单提交多个文本字段和一个图像文件。然后在我的
parseForm
函数中,我将把它们打包成一个对象,保存到mongo中,如下所示form.parse(req, function(err, fields, files) {
var temp = fields;
temp.image = {};
temp.image.data = fs.readFileSync(files.image[0].path);
temp.image.contentType = 'image';
var product = new Product(temp);
product.save();
res.redirect('/');
});
关于node.js - 表达Multipart/form-data时如何获取其他类型字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31559062/