转换成字符串后存储文件将变得很容易,您只需在前端将字符串转换成图像即可
在您的 api 中使用此代码将图像转换为 base64 字符串,并且不要忘记从上传文件夹中删除文件
"img": new Buffer.from(fs.readFileSync(req.file.path)).toString("base64")
删除文件
let resultHandler = function (err) {
if (err) {
console.log("unlink failed", err);
} else {
console.log("file deleted");
}
}
fs.unlink(req.file.path, resultHandler);
在你的路线上导入 multer
`multer const multer = require('multer');
const upload = multer({ dest: __dirname + '/uploads/images' });`
Add upload.single('img') in your request
router.post('/fellows-details', authorize([Role.ADMIN, Role.USER]),
upload.single('img'), usersController.fellowsdetails);
或
如果您想将图像保存在localstorage 并希望将路径保存在数据库中,您可以尝试以下方法
您必须先安装将创建文件夹的 fs-extra。我正在按 id 创建单独的文件夹,如果你想删除它,你可以删除它。和
要保存上传图像的路径,请将此代码添加到您用于保存图像的 api 或控制器中,并将其与其他数据一起添加到数据库中
let Id = req.body.id;
let path = `tmp/daily_gasoline_report/${Id}`;
为multer 创建单独的文件夹,例如multerHelper.js
const multer = require('multer');
let fs = require('fs-extra');
let storage = multer.diskStorage({
destination: function (req, file, cb) {
let Id = req.body.id;
let path = `tmp/daily_gasoline_report/${Id}`;
fs.mkdirsSync(path);
cb(null, path);
},
filename: function (req, file, cb) {
// console.log(file);
let extArray = file.mimetype.split("/");
let extension = extArray[extArray.length - 1];
cb(null, file.fieldname + '-' + Date.now() + "." + extension);
}
})
let upload = multer({ storage: storage });
let createUserImage = upload.array('images', 100);
let multerHelper = {
createUserImage,
}
module.exports = multerHelper;
在您的路线中导入multerhelper 文件
const multerHelper = require("../helpers/multer_helper");
router.post(multerHelper. createUserImage , function(req, res, next) {
//Here accessing the body datas.
})