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); });