我想将表单数据与文件一起存储。当我使用不带有此enctype="multipart/form-data"
的表单时,效果很好,但是req.files剂量存在于需要上传文件的req中。当我使用enctype形式时,仍然存在req.files主题,而req.body没有任何数据。
我试图实现multer来处理文件,但是req.files文件存在,所以没有任何想法。
我的路线
const urlencodedParser = bodyParser.urlencoded({extended: true});
router.post('/save_file', urlencodedParser, home.add_file);
我的控制器
exports.add_file = function(req, res){
console.log(req.body);
console.log(req.files);
}
将提供任何帮助。
答案 0 :(得分:0)
bodyParser ,用于解析服务器请求的库,不解析文件,您需要使用其他库,( multer 非常好,简单)。 所以首先:
let multer = require("multer"); //the library
let storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, 'path/to/upload/your/file');
},
filename: function (req, file, cb) {
cb(null, file.originalname);
}
});//Configure the place you will upload your file
let upload = multer({ storage: storage }); //instanciation of multer
// image is the name of the input in the form
router.post('/your_endpoint', upload("image"), (req, res)=> {
let file = req.file; //contains the file
let path = file.path; //contains the paths
})
答案 1 :(得分:0)
尝试在节点应用中使用multer-
https://www.npmjs.com/package/multer enter link description here