nodejs实现跨分区重命名文件

来源:互联网 发布:网络舆情报告格式 编辑:程序博客网 时间:2024/05/29 13:39

问题:fs.renameSync(files.goodimgs.path, newPath); //重命名

报错:

fs.js:809  return binding.rename(pathModule._makeLong(oldPath),                 ^Error: EXDEV: cross-device link not permitted, rename 'C:\Users\ADMINI~1\AppData\Local\Temp\upload_eca5667ec3a0b2f136569bcd9103ea70' -> 'D:\test\market\server\public\goodsImg\10\1493292871360.jpg'    at Error (native)    at Object.fs.renameSync (fs.js:809:18)    at D:\test\market\server\controller\goodsController.js:60:16    at IncomingForm.<anonymous> (D:\test\market\server\node_modules\formidable\lib\incoming_form.js:105:9)    at emitNone (events.js:86:13)    at IncomingForm.emit (events.js:185:7)    at IncomingForm._maybeEnd (D:\test\market\server\node_modules\formidable\lib\incoming_form.js:553:8)    at D:\test\market\server\node_modules\formidable\lib\incoming_form.js:230:12    at WriteStream.<anonymous> (D:\test\market\server\node_modules\formidable\lib\file.js:74:5)    at WriteStream.g (events.js:291:16)

解决方案:

fs.renameSync(files.goodimgs.path, newPath);

改成

var is=fs.createReadStream(files.goodimgs.path);            var os = fs.createWriteStream(newPath);            is.pipe(os);            is.on('end',function(){                fs.unlinkSync(files.goodimgs.path);            });

参考:Node.js编程时fs.renameSync出错
Node.js中所用的fs.renameSync出错:Error: EXDEV, cross-device link not permitted

1 0
原创粉丝点击