nodejs提示:cross-device link not permitted, rename错误的解决方法


Posted in NodeJs onJune 10, 2019

node.js提示错误:

Error: EXDEV: cross-device link not permitted, rename 'C:\Users\THEDIS~1\AppData\Local\Temp\upload_9b46f1afc2f9ade074037c3fb707d271' -> 'E:/node-rumen/tmp/test.png'

文件上传的功能时候,调用fs.renameSync方法错误

这个提示是跨区重命名文件出现的权限问题。

解决方法

先从源文件拷贝到另外分区的目标文件,然后再unlink,就可以了。

form.parse(request, function(error, fields, files) {
 console.log(“parsing done”);
 fs.renameSync(files.upload.path, “/tmp/test.png”);
});

改成

form.parse(request, function(error, fields, files) {
 console.log(“parsing done”);

 // fs.renameSync(files.upload.path, “/nodejs/case/two/img/test.png”);

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

PS:node版本是0.10.69可以使用上面的方法,如果使用的是0.6以下的版本,可以使用util.pump

相应代码只需将上面的代码中readStream.on处改成:(注意引入util模块)

util.pump(readStream,writeStream, function() {
 fs.unlinkSync('files.upload.path');
});

参考地址:https://stackoverflow.com/que...

https://stackoverflow.com/que...

方法二:

这种就简洁很多了

添加一个 form.uploadDir='tmp' 即可(写一个临时路径)

function upload(response,request){
 console.log(“upload called”);
 var form = new formidable.IncomingForm();
 form.uploadDir='tmp';

 console.log(“about to parse”);
 form.parse(request, function(error, fields, files) {
  console.log(“parsing done”);
  fs.renameSync(files.upload.path, “./tmp/test.jpg”);
  response.writeHead(200, {“Content-Type”: “text/html”});
  response.write(“received image:<br/>”);
  response.write(“<img src='/show' />”);
  response.end();
 });
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

NodeJs 相关文章推荐
跟我学Nodejs(三)--- Node.js模块
May 25 NodeJs
使用Nodejs开发微信公众号后台服务实例
Sep 03 NodeJs
NodeJs基本语法和类型
Feb 13 NodeJs
Nodejs关于gzip/deflate压缩详解
Mar 04 NodeJs
nodejs调用cmd命令实现复制目录
May 04 NodeJs
nodejs实现遍历文件夹并统计文件大小
May 28 NodeJs
使用DNode实现php和nodejs之间通信的简单实例
Jul 06 NodeJs
使用NodeJs 开发微信公众号(三)微信事件交互实例
Mar 02 NodeJs
NodeJS实现图片上传代码(Express)
Jun 30 NodeJs
Nodejs调用WebService的示例代码
Sep 29 NodeJs
nodejs中用npm初始化来创建package.json的实例讲解
Oct 10 NodeJs
NodeJs 实现简单WebSocket即时通讯的示例代码
Aug 05 NodeJs
Nodejs异步流程框架async的方法
Jun 07 #NodeJs
nodejs log4js 使用详解
May 31 #NodeJs
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
May 30 #NodeJs
nodejs中实现修改用户路由功能
May 24 #NodeJs
nodejs实现用户登录路由功能
May 22 #NodeJs
基于nodejs的微信JS-SDK简单应用实现
May 21 #NodeJs
nodejs中实现用户注册路由功能
May 20 #NodeJs
You might like
php 用checkbox一次性删除多条记录的方法
2010/02/23 PHP
解析PHP中的正则表达式以及模式匹配
2013/06/19 PHP
Thinkphp模板中截取字符串函数简介
2014/06/17 PHP
PHP基于递归实现的约瑟夫环算法示例
2017/08/27 PHP
php中的钩子理解及应用实例分析
2019/08/30 PHP
纯js实现瀑布流展现照片(自动适应窗口大小)
2013/04/08 Javascript
jQuery+AJAX实现无刷新下拉加载更多
2015/07/03 Javascript
Avalon中文长字符截取、关键字符隐藏、自定义过滤器
2016/05/18 Javascript
浅谈JQuery+ajax+jsonp 跨域访问
2016/06/25 Javascript
浅谈JavaScript 覆盖原型以及更改原型
2016/08/31 Javascript
Vue2.0父子组件传递函数的教程详解
2017/10/16 Javascript
如何制作一个Node命令行图像识别工具
2018/12/12 Javascript
详解Ant Design of React的安装和使用方法
2018/12/27 Javascript
jQuery实现的导航条点击后高亮显示功能示例
2019/03/04 jQuery
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
2020/05/19 jQuery
[01:05:00]2018国际邀请赛 表演赛 Pain vs OpenAI
2018/08/24 DOTA
python有证书的加密解密实现方法
2014/11/19 Python
python&amp;MongoDB爬取图书馆借阅记录
2016/02/05 Python
python机器学习理论与实战(四)逻辑回归
2018/01/19 Python
Python使用OpenCV进行标定
2018/05/08 Python
python面向对象入门教程之从代码复用开始(一)
2018/12/11 Python
python如何制作缩略图
2019/04/30 Python
Python安装与卸载流程详细步骤(图解)
2020/02/20 Python
Python多线程多进程实例对比解析
2020/03/12 Python
Tensorflow实现将标签变为one-hot形式
2020/05/22 Python
python rsa-oaep加密的示例代码
2020/09/23 Python
一款基于css3的列表toggle特效实例教程
2015/01/04 HTML / CSS
美国精品家居用品网站:US-Mattress
2016/08/24 全球购物
印度最大的时尚购物网站:Myntra
2018/09/13 全球购物
戴尔新西兰官网:Dell New Zealand
2020/01/07 全球购物
幼儿园开学家长寄语
2014/01/19 职场文书
公司活动邀请函
2014/01/24 职场文书
咖啡店创业计划书范文
2014/09/15 职场文书
2014年党员发展工作总结
2014/12/02 职场文书
拾金不昧感谢信范文
2015/01/21 职场文书
网络研修心得体会
2016/01/08 职场文书