2017-06-18 15 views
0

我一直在做一些的研究,上傳多蛾,它工作得很好。最近,我一直試圖增強我的當前代碼,以便上傳目的地可以從客戶端選擇。但它變成了一個死衚衕。編輯垂涎上傳目的地

是否有任何可能的方式從客戶端更改上傳目的地?

這是我一直在使用作爲基礎代碼,這是非常標準:

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"); 
    }); 
}); 

回答

0

你有沒有tryed使用類似的東西

const path = require('path') 

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

它需要像?dest=folder,並附加網址那到你的上傳路徑。

但是,如果你讓客戶端選擇目錄確保dest貓不是../的東西,並將覆蓋你不想被覆蓋的文件(如你的upload.js)。