我想为一张已上传的图片创建一个链接 (./pictures),并将该链接添加到我的 MySQL-DB。
图片保存:
var Storage = multer.diskStorage({
destination: function(req, file, callback) {
callback(null, "./pictures");
},
filename: function(req, file, callback) {
pictureSaveFormat = Date.now();
file.originalname);
callback(null, pictureSaveFormat + ".jpg");
}
});
最佳答案
这只是伪代码/示例代码,但希望对您有所帮助:
const storage = multer.diskStorage({
destination(req, file, cb) { /* save to destination */},
filename(req, file, cb) { /* make filename */ }
});
router.post('/', multer({ storage }), (req, res) => {
// you can store all these params
const fileAttrs = {
fieldname: req.file.fieldname,
originalname: req.file.originalname,
encoding: req.file.encoding,
mimetype: req.file.mimetype,
destination: req.file.destination,
filename: req.file.filename,
path: req.file.path,
size: req.file.size
}
// save fileAttrs into your database (e.g. using Photo model)
Photo.create(fileAttrs).then(() => {
// handle response
res.redirect('/');
});
});
主要思想是您可能想要创建存储中间件并将其传递给您的路由处理程序。上传图像后,您应该可以访问可以存储在数据库中并稍后用于检索图像的数字或属性。
至于在数据库中存储属性,我假设您正在使用某种 ORM,例如 bookshelf 或 sequelize。在这种情况下,您将拥有一个照片/图像模型,可用于将这些属性写入数据库。
在处理响应之前,所有这些都需要在您的路由处理程序中完成。
关于javascript - Node JS 创建从图片到数据库的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48415330/