【问题标题】:Multer isn't saving to specified destinationMulter 没有保存到指定的目的地
【发布时间】:2019-03-12 18:42:04
【问题描述】:

我对 nodejs/express 还很陌生,但是无论我做什么,我似乎都无法让 multer 保存到指定的目的地,它似乎完全忽略了参数。代码如下所示

//app.js
var multer = require('multer');
var fs = require('fs');
var apiRouter = express.Router();
var app = express();

var store = multer.diskStorage({
  filename: function(req,file,cb){
    console.log("filename");
    cb(null, Date.now()+'.'+file.originalname);
  },
  desitnation: function(req,file,cb){
    console.log("storage");
    cb(null,'./public/');
  }
});

var upload = multer({storage:store}).single('file');

apiRouter.post('/upload', function(req, res){
  upload(req, res, function (err) {
    if (err) {
      return res.end(err.toString());
    }
    console.log(req.file);
    return res.json({originalname:req.file.originalname, uploadname:req.file.filename});
  });
});

上传时得到的响应如下:

GET /vendor.js.map 200 3.916 ms - 6636755
filename
{ fieldname: 'file',
  originalname: 'Desert.jpg',
  encoding: '7bit',
  mimetype: 'image/jpeg',
  destination: 'C:\\Users\\Dwyer\\AppData\\Local\\Temp',
  filename: '1538979138829.Desert.jpg',
  path:
   'C:\\Users\\Dwyer\\AppData\\Local\\Temp\\1538979138829.Desert.jpg',
  size: 845941 }
POST /api/upload 200 70.031 ms - 69

似乎正确设置了文件,但我不确定它从哪里获取目标,不知道为什么没有读取目标参数。

【问题讨论】:

    标签: node.js express upload multer


    【解决方案1】:

    它实际上是“目的地”(不是目的地)。您还应该确保在指定目的地有一个具有指定名称的文件夹。

    【讨论】:

      【解决方案2】:

      您是否尝试在目的地使用物理地址?我猜multer document 中的目的地是 linux 操作系统中的物理地址。

      【讨论】:

      • 这是一个Windows操作系统,但是好像连函数都没有进入,从来不输出“storage”
      【解决方案3】:

      但无论我似乎做什么,我似乎都无法让 multer 保存到指定的目的地,它似乎完全忽略了参数。

      这是因为配置中似乎有错字。

      'use strict';
      
      var store = multer.diskStorage({
        filename: function (req, file, cb) {
          console.log("filename");
          cb(null, Date.now() + '.' + file.originalname);
        },
        destination: function (req, file, cb) { // it is destination not desitnation :)
          console.log("storage");
          cb(null, './public/');
        }
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-24
        • 2011-12-14
        • 1970-01-01
        • 1970-01-01
        • 2013-12-22
        相关资源
        最近更新 更多