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' }
我不确定这里有什么问题。 有人有主意吗?
你的代码试图做的是将public/temp
目录重命名为public/images
。 public/images
可能已经存在,所以你得到这个错误。 换句话说,你没有移动图像,而是将“ public/temp
”目录“移动”(重命名)为public/images
。
你必须改用photo.path
。 使用它作为第一个参数,然后也许第二个参数应path.join
图像目录path.basename(photos.path)
。