我正在使用nodeJS上传图像文件并进行表达,目前,图像以随机文件名保存,没有特定文件类型。我想用扩展名保存文件名,以便我也可以显示它,因为当前在数据库文件名中保存为原始文件,但在上载文件夹中,它会分配一个随机名称(字符串),当我提取该名称时返回我不知道如何显示它,因为它没有任何文件类型/扩展名,即.png / JPEG。
//Schema
const AddProductSchema = new Schema({
productCode: String,
productTitle: String,
productImage: String
//defined express, mongoose, multer and upload const for the directory
const upload = multer({
dest: __dirname + '/uploads/images'
});
//post method
app.post("/addProductToDB", upload.single("productImage"), function(req, res) {
// to get the detail filled on add product form
const addproduct = new AddProduct({
productCode: req.body.productCode,
productTitle: req.body.productTitle,
productImage: req.file.originalname
});
addproduct.save();
res.redirect("/products");
});
答案 0 :(得分:0)
如果要显示图像productImage: Buffer
,应将productImage保存为缓冲区类型
有一个名为Sharp的软件包,可以帮助您自定义图像文件,然后再保存到数据库中,名为Sharp https://www.npmjs.com/package/sharp
如果要在保存之前具有png文件类型,可以使用以下代码
const buffer = await sharp(req.file.buffer)
.png()
.toBuffer();
然后,您只需要将缓冲区保存到productImage: buffer