使用 NodeJS Multer 模块上传 Jpg 文件时出现格式问题
Format issue while uploading Jpg file with NodeJS Multer module
我正在使用 Multer 将 jpg 文件从 Postman 上传到 node.js back-end。
我认为 "upload" 进行得很顺利,因为在 POST 请求
之后图像位于正确的位置,名称和大小都正确
不幸的是,当我尝试打开图像文件时,即使扩展名是 .jpg,它也不会以 jpg 图像打开
我使用了 checkFileType 网站,显然,上传后文件类型变为 application/octet-stream。
我没有在请求中指定任何 headers。
Here is my Postman setup
Here is the response
这里是NodeAPI端的代码
var localWorkLocation = '/Users/noste/CarFixer/Pictures/';
exports.createBinary = function (req, res) {
var location = localWorkLocation + req.params.platenumber;
var storageOptions = multer.diskStorage({
destination: function (req, file, callback) {
mkdirp(location, err => callback(err, location));
callback(null, location);
},
filename: function (req, file, callback) {
//if (!file.originalname.match(/\.(jpg|jpeg|png)$/)) {
// return callback(new Error('Only image files are allowed!'), false);
//}
callback(null, file.originalname);
},
});
var upload = multer({storage : storageOptions}).single('picture');
upload(req, res, function(err){
console.log(req.file);
if(err) {
return res.end(err.message);
}
res.send(req.file);
});
};
我尝试上传 .txt 文件,上传后它仍然可读。
有没有我需要指定我想保留 jpg 格式的地方?
这是您需要的存储配置..根据您的代码更改命名
var path = require('path');
var storage = multer.diskStorage({
destination: function(req, file, callback) {
callback(null, './uploads');
},
filename: function(req, file, callback) {
var fname = file.fieldname + '-' + Date.now() + path.extname(file.originalname);
callback(null, fname);
}
});
这是
的另一个答案
我正在使用 Multer 将 jpg 文件从 Postman 上传到 node.js back-end。
我认为 "upload" 进行得很顺利,因为在 POST 请求
之后图像位于正确的位置,名称和大小都正确不幸的是,当我尝试打开图像文件时,即使扩展名是 .jpg,它也不会以 jpg 图像打开 我使用了 checkFileType 网站,显然,上传后文件类型变为 application/octet-stream。
我没有在请求中指定任何 headers。
Here is my Postman setup
Here is the response
这里是NodeAPI端的代码
var localWorkLocation = '/Users/noste/CarFixer/Pictures/';
exports.createBinary = function (req, res) {
var location = localWorkLocation + req.params.platenumber;
var storageOptions = multer.diskStorage({
destination: function (req, file, callback) {
mkdirp(location, err => callback(err, location));
callback(null, location);
},
filename: function (req, file, callback) {
//if (!file.originalname.match(/\.(jpg|jpeg|png)$/)) {
// return callback(new Error('Only image files are allowed!'), false);
//}
callback(null, file.originalname);
},
});
var upload = multer({storage : storageOptions}).single('picture');
upload(req, res, function(err){
console.log(req.file);
if(err) {
return res.end(err.message);
}
res.send(req.file);
});
};
我尝试上传 .txt 文件,上传后它仍然可读。 有没有我需要指定我想保留 jpg 格式的地方?
这是您需要的存储配置..根据您的代码更改命名
var path = require('path');
var storage = multer.diskStorage({
destination: function(req, file, callback) {
callback(null, './uploads');
},
filename: function(req, file, callback) {
var fname = file.fieldname + '-' + Date.now() + path.extname(file.originalname);
callback(null, fname);
}
});
这是