编辑multer上传目标

时间:2017-06-18 10:16:57

标签: javascript node.js multer

我一直在研究使用multer 上传,并且它的效果非常好。最近,我一直在尝试增强我当前的代码,以便可以从客户端选择上传目的地。但结果却是死路一条。

有没有办法从客户端更改上传目的地?

以下是我作为基础使用的代码,它非常标准:

var storage = multer.diskStorage({
  destination: function (req, file, callback) {
    callback(null, './uploads'); //same folder as upload.js
  },
  filename: function (req, file, callback) {
    // fileNameUploaded = file.originalname
    callback(null, Date.now()+ path.extname(file.originalname));
  }
});
var upload = multer({ storage : storage }).array('userPhoto',5);

//upload file
router.post('/api/upload',function(req,res){
    upload(req,res,function(err) {
        if(err) {
            return res.end("Error uploading file.");
        }
        res.end("File is uploaded");
    });
});

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用类似的东西

const path = require('path')

destination: function (req, file, callback) {
  const dest = req.query.dest
  callback(null, path.join(__dirname, 'uploads', dest))
},

它需要一个类似?dest=folder的网址,并将其附加到您的上传路径。

但是如果你让客户选择目录,请确保dest cat不像../那样,并且会覆盖你不想被覆盖的文件(比如你的upload.js)。