使用MULTER重命名上传的图像

时间:2017-05-15 20:17:14

标签: node.js image-uploading multer

我正在使用multer上传图片。他们都被赋予了随机名称(dec93b9f333c7a731723b06ce73c0bbc.jpg),这对搜索引擎优化非常糟糕......你能帮我解决一下,如何使用模式保存图像:'fixed-name'+'random-name'.extension 。然后至少部分文件可供谷歌阅读。谢谢!

app.set('images', '/var/www/images');
app.use(app.get('images'), express.static(app.get('images')));
var multerForImage = multer({
    dest: app.get('images'),
    onParseStart: function (file) {
        console.log("Started parsing file stream", file);
    },
    onFileUploadStart: function (file) {
        console.log('File recieved: ', file.originalname);
    },
    onFileUploadComplete: function (file, req, res) {
        console.log("File upload complete");
        var path = app.get('images') + "/" + file.name;
        var user = req.session.user;
        res.json({
            success: true,
            data: path
        });

    },
    onFileUploadData: function (file, data, req, res) {
        console.log('Data recieved for file upload');
    },
    onParseEnd: function (req, next) {
        console.log("Parsing data end for file upload");
    }
});

1 个答案:

答案 0 :(得分:0)

您可以使用存储配置。

app.set('images', '/var/www/images');
app.use(app.get('images'), express.static(app.get('images')));
    var storage = multer.diskStorage({
        destination: function (req, file, cb) {
            cb(null, app.get('images'))
        },

        filename: function (req, file, cb) {
            const randomPart = uuidV4(); // use whatever random you want.
            const extension = file.mimetype.split('/')[1];
            cb(null, 'fixed-name'+ randomPart + `.${extension}`)

        }
    })

    var multerForImage = multer({
        storage: storage,
        ...