1
當用戶上傳圖片時 - 我使用的是multer - 名稱中包含空格,我想用"-"
替換空格,然後將文件名保存爲我的Mysql表格,然後重命名已上傳到"-"
的新名稱的文件。 這是我的代碼。它會重新命名並且Mysql表格會使用連字符保存新名稱,但由於某種原因圖像無法上傳,甚至沒有錯誤,事實上POST請求實際上是成功的。使用fs重命名上傳的圖像使用fs
router.post('/uploadpost', upload.single('image'), function(req, res){
var name = req.file.originalname;
var reName;
if(/\s/g.test(name)){
reName = name.replace(" ", "-");
fs.rename(req.file.path, reName, function(err){
if(err){
throw err;
}
});
}
你爲什麼想用原來的名字嗎?我會擔心惡意路徑.... – mscdex
@mscdex你建議我做什麼?將每個上傳的圖像重命名爲任意字符串? –
那麼,目前默認情況下,磁盤存儲使用由16位十六進制數字組成的隨機/唯一文件名保存到磁盤。文件名(不是絕對路徑)在'req.file.filename'屬性中可用。所以你可以把它移動到你想要/需要的任何位置。例如:'fs.rename(req.file.path,path.join('/ my/upload/storage',req.file.filename),...)' – mscdex