2013-03-06 36 views
1

這裏是我的代碼:EPERM使用錯誤fs.rename()

exports.post_handler = function(req, res) { 
    var photo = req.files.image; 
    console.log(photo); 
    console.log(__dirname); 

    fs.readFile(photo.path, function(err, data) { //I use the path module to join the image path strings 
     fs.rename(path.join(__dirname, "public/temp"), path.join(__dirname,"public/images"), function(err) { 
      if (err) { 
       console.log(err); 
       res.redirect("/"); 
      } 
      else { 
       console.log("file " + photo.name + "written to uploads folder"); 
       res.redirect("/home"); 
      } 
     }); 
    }); 
} 

我想從我的temp文件夾移動上傳的圖片文件到我的uploads文件夾。我正在使用fs模塊來做到這一點。我的電腦上授予完全權限這兩個文件對所有用戶後,我發現了以下錯誤:

{ [Error: EPERM, rename 'dir\public\temp'] 
    errno: 50, 
    code: 'EPERM', 
    path: 'dir\\public\\temp' } 

我不知道發生了什麼事情錯在這裏。有人有主意嗎?

回答

1

你的代碼試圖做的是將public/temp目錄重命名爲public/imagespublic/images大概已經存在,所以你得到這個錯誤。換句話說,無處移動圖像,而是將目錄public/temp「移動」(重命名)爲public/images

您必須改用photo.path。使用它作爲第一個參數,然後可能第二個參數path.join圖像目錄到path.basename(photos.path)

相關問題