在我的文件夹中上传的图像没有扩展节点 js 和 multer

Image uploaded in my folder without extension with node js and multer

我在使用 node 和 multer 时遇到了一个奇怪的问题。

我上传图片的脚本正在运行,但上传的图片没有扩展名(jpeg、png 等)。 就像那样: 4a8a1400d04b5ccdfdb829aa5ee62763

如果我为图片添加扩展名 (jpeg),它就会显示出来。

我的代码是这样的:

    const multer  = require('multer');

    var upload = multer({ dest: __dirname +'/uploads/' });

    app.post('/test.html', upload.single('avatar'),function (req,res,next){
        
       console.log("minetype"+req.file.mimetype);
       res.render('test', {})       
    });

还有我的表格:

    <form action="/test.html" method="post" enctype="multipart/form-data" name="monForm">
       <input type="file" name="avatar" />        
       <input type="submit" value="Upload">       
    </form>

你可以配置文件名,例如: 这将保留原始扩展名并仍然使用 uniqid 包生成一个随机名称。 (如有需要,请随意替换为其他内容)

const uniqid = require('uniqid');
const path = require('path');
const multer  = require('multer');

let upload = multer({
    storage: multer.diskStorage({
        destination: function (req, file, cb) {
            cb(null, `${__dirname}/uploads/`);
        },
        filename: function (req, file, cb) {
            cb(null, uniqid() + path.extname(file.originalname));
        },
    }),
});