Multer 没有在 Express 应用程序中上传图片
Multer not uploading the image in express app
我编写了这个简单的应用程序来测试 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
并将键名作为参数,但它仍然不起作用。有什么问题?
编辑:回复 Gaurav 的评论。这是邮递员的屏幕截图。我已将密钥名称从 chqImg
更改为 file
。
试试这个
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);
});
我知道出了什么问题。我刚刚取消选中邮递员中的 header 字段,该字段将 Content-type
设置为 multipart/form-data
。但是,我无法理解为什么它不能使用它。
Axios 不能与 multer 一起使用,因此需要使用 XMLHTTPRequest
let request = new XMLHttpRequest();
request.open('POST', 'url');
request.send(formData)
我编写了这个简单的应用程序来测试 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
并将键名作为参数,但它仍然不起作用。有什么问题?
编辑:回复 Gaurav 的评论。这是邮递员的屏幕截图。我已将密钥名称从 chqImg
更改为 file
。
试试这个
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);
});
我知道出了什么问题。我刚刚取消选中邮递员中的 header 字段,该字段将 Content-type
设置为 multipart/form-data
。但是,我无法理解为什么它不能使用它。
Axios 不能与 multer 一起使用,因此需要使用 XMLHTTPRequest
let request = new XMLHttpRequest();
request.open('POST', 'url');
request.send(formData)