【问题标题】:multer save image without mimetypemulter保存没有mimetype的图像
【发布时间】:2015-10-19 05:08:50
【问题描述】:

我正在使用"multer": "^1.0.6", 我想将图像保存在上传文件夹中。 我的代码是

app.post('/post', multer({dest: './uploads/'}).single('file'), function (req, res) {
response = {
    message: 'File uploaded successfully',
    filename: req.file.filename
};
res.end(JSON.stringify(response));
});

但我在上传文件夹8e6e425f8756e0bafb40ed1a3cb86964中有同名文件

为什么我的这个名字没有 mimetype?

【问题讨论】:

    标签: node.js multer


    【解决方案1】:

    Multer 保存不带扩展名的文件,您可以在 GitHub 上阅读:

    filename 用于确定文件在文件夹中的名称。如果没有给出文件名,每个文件将被赋予一个不包含任何文件扩展名的随机名称。

    如果您想使用您在此处编写代码的扩展程序进行保存:

    var storage = multer.diskStorage({
      destination: function (req, file, cb) {
        cb(null, '/tmp/my-uploads')
      },
      filename: function (req, file, cb) {
        cb(null, file.originalname); // modified here  or user file.mimetype
      }
    })
    
    var upload = multer({ storage: storage })
    

    您可以在这里找到所有信息https://github.com/expressjs/multer/blob/master/README.md

    【讨论】:

      【解决方案2】:

      Multer 不担心文件的扩展名,而将其完全留在您身边:您必须为自己定义一个可以执行此操作的函数。例如,像这样:

      var multer  = require('multer');
      var upload = multer({ storage: multer.diskStorage({
      
          destination: function (req, file, cb) {
            cb(null, './uploads');
          },
      
          filename: function (req, file, cb) {
            var ext = require('path').extname(file.originalname);
            ext = ext.length>1 ? ext : "." + require('mime').extension(file.mimetype);
            require('crypto').pseudoRandomBytes(16, function (err, raw) {
              cb(null, (err ? undefined : raw.toString('hex') ) + ext);
            });
          }
      
      })});
      
      app.post('/post', upload.single('file'), function (req, res) {
        response = {
          message: 'File uploaded successfully',
          filename: req.file.filename
        };
        res.end(JSON.stringify(response));
      });
      

      【讨论】:

        猜你喜欢
        • 2018-05-10
        • 2017-05-26
        • 1970-01-01
        • 2022-08-18
        • 2019-03-12
        • 1970-01-01
        • 2018-05-16
        • 2018-09-07
        • 2021-11-18
        相关资源
        最近更新 更多