【问题标题】:nodejs multer image upload : retain file name and extensionnodejs multer image upload:保留文件名和扩展名
【发布时间】:2020-07-25 22:13:32
【问题描述】:

我在下面有一个 node.js express 代码来上传图像并存储到默认文件夹中。

我意识到文件被重命名并且扩展名丢失了。有人可以帮我解决这个错误吗?

1.如何保留扩展名和文件名

  1. 如果上传的是 zip 文件,我想将其解压缩并上传

    const __basefolder = "C:/Users/user/Desktop";
    const express = require('express');
    const multer = require('multer');
    const upload = multer({dest: __basefolder + '/uploads/images'});
    const app = express();
    const PORT = 3000;
    
    app.use(express.static('public'));
    app.post('/upload', upload.single('file'), (req, res) => {
        if(req.file) {
            res.json(req.file);
        }
        else throw 'error';
    });
    app.listen(PORT, () => {
        console.log('Listening at ' + PORT );
    });
    

【问题讨论】:

    标签: node.js express multer


    【解决方案1】:

    您可以在磁盘存储设置中定义filename-选项,让您可以任意选择文件名。由于您想要原始文件名,因此可以使用file.originalname(请注意,使用此名称的现有文件将被覆盖):

    const storage = multer.diskStorage({
        destination: (req, file, cb) => {
            cb(null, __basefolder + '/uploads/images');
        },
        filename: (req, file, cb) => {
            cb(null, file.originalname);
        }
    })
    
    const upload = multer({storage});
    

    关于第二个问题:这个问题之前已经回答过了,比如this或者that

    【讨论】:

      猜你喜欢
      • 2015-12-15
      • 2017-06-27
      • 1970-01-01
      • 2011-04-26
      • 2017-03-12
      • 2020-02-24
      • 2020-06-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多