我已经编写了这个简单的应用程序来测试multer将文件上传到我的服务器。我正在尝试使用邮递员测试这个,我选择了form-data
选项,为我的图像添加了一个键,并使用旁边的按钮上传了图像。 API被正确调用,但图像无法上传。
var express = require("express");
var app = express();
var multer = require('multer');
var upload = multer({
dest: 'images/',
});
app.post('/uploadchq', upload.any(), function(req, res, next) {
console.dir("file", req.file);
console.dir("files", req.files);
console.log("body", req.body);
next();
res.sendStatus(200);
});
app.listen(9999);
console.log("listening to port", 9999);
Multer正在创建我在dest
字段中指定的图片目录,但是req.file
,req.files
,req.body
所有字段都是空的。我尝试使用upload.single
代替any
,并使用键名作为参数,但它仍然不起作用。有什么问题?
答案 0 :(得分:1)
试试这个
var storage = multer.diskStorage({
destination: function(req, file, cb) {
var dest = 'images/';
cb(null, dest);
}
})
var upload = multer({
storage: storage
});
app.post('/uploadchq', upload.fields([{
name: 'file'
}]), function(req, res, next) {
console.log("files", req.files.file);
console.log("body", req.body);
});
答案 1 :(得分:0)
我弄清楚出了什么问题。我刚刚取消选中邮递员中的标题字段,该字段将Content-type
设置为multipart/form-data
。但是,我无法理解它为什么不能使用它。