Node.js用fs.renameSync报cross-device link not permitted错误

今天阅读了  Manuel Kiessling 的 《Node入门》   对node.js有一个大概的了解,在本书最后的一个例子上传图片时出现一些问题

问题:跨目录重命名文件导致的问题 (fs.renameSync)

解决方案:

1.添加临时路径

 var form = new formidable.IncomingForm();
 form.uploadDir='tmp'; //临时路径

   

2.利用fs的createReadStream、createWriteSream和unlinkSync方法

 //   fs.renameSync(files.upload.path, "/tmp/test.png");

      var readStream=fs.createReadStream(files.upload.path);
      var writeStream=fs.createWriteStream("./tmp/test.png");
      readStream.pipe(writeStream);
      readStream.on('end',function(){
          fs.unlinkSync(files.upload.path);
       });

 

      


 

posted @ 2015-09-18 16:38  石中隐鱼  阅读(226)  评论(0编辑  收藏  举报