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中实现sleep功能实例
Mar 24 NodeJs
详解nodejs微信公众号开发——4.自动回复各种消息
Apr 11 NodeJs
Nodejs--post的公式详解
Apr 29 NodeJs
NodeJs使用Mysql模块实现事务处理实例
May 31 NodeJs
NodeJS实现图片上传代码(Express)
Jun 30 NodeJs
nodejs使用http模块发送get与post请求的方法示例
Jan 08 NodeJs
nodeJs实现基于连接池连接mysql的方法示例
Feb 10 NodeJs
Mac下通过brew安装指定版本的nodejs教程
May 17 NodeJs
Nodejs实现爬虫抓取数据实例解析
Jul 05 NodeJs
nodejs 生成和导出 word的实例代码
Jul 31 NodeJs
nodejs使用socket5进行代理请求的实现
Feb 21 NodeJs
nodejs+express最简易的连接数据库的方法
Dec 23 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
source.php查看源文件
2006/12/09 PHP
php中用文本文件做数据库的实现方法
2008/03/27 PHP
ThinkPHP查询返回简单字段数组的方法
2014/08/25 PHP
PHP+jquery实时显示网站在线人数的方法
2015/01/04 PHP
php计算税后工资的方法
2015/07/28 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
2015/12/29 PHP
CSS+Jquery实现页面圆角框方法大全
2009/12/24 Javascript
Array.prototype.slice 使用扩展
2010/06/09 Javascript
JavaScript将数据转换成整数的方法
2014/01/04 Javascript
浅谈jQuery异步对象(XMLHttpRequest)
2014/11/17 Javascript
jQuery增加与删除table列的方法
2016/03/01 Javascript
js接收并转化Java中的数组对象的方法
2016/08/11 Javascript
AngularJS实践之使用NgModelController进行数据绑定
2016/10/08 Javascript
谈谈第三方App接入微信登录 解读
2016/12/27 Javascript
vue学习笔记之vue1.0和vue2.0的区别介绍
2017/05/17 Javascript
JavaScript如何获取到导航条中HTTP信息
2017/10/10 Javascript
如何制作一个Node命令行图像识别工具
2018/12/12 Javascript
小程序二次贝塞尔曲线实现购物车商品曲线飞入效果
2019/01/07 Javascript
微信小程序实现多选删除列表数据功能示例
2019/01/15 Javascript
vue解决跨域问题(推荐)
2020/11/10 Javascript
python+matplotlib演示电偶极子实例代码
2018/01/12 Python
Python内置模块hashlib、hmac与uuid用法分析
2018/02/12 Python
Python django使用多进程连接mysql错误的解决方法
2018/10/08 Python
Python获取航线信息并且制作成图的讲解
2019/01/03 Python
python 随机生成10位数密码的实现代码
2019/06/27 Python
Python 实现opencv所使用的图片格式与 base64 转换
2020/01/09 Python
阿迪达斯芬兰官方网站:adidas芬兰
2017/01/30 全球购物
Big Green Smile德国网上商店:提供各种天然产品
2018/05/23 全球购物
捷克浴室和厨房设备购物网站:SIKO
2018/08/11 全球购物
党员组织关系介绍信
2014/02/13 职场文书
节约用水的口号
2014/06/20 职场文书
企业财务总监岗位职责
2015/04/03 职场文书
党员承诺书格式范文
2015/04/28 职场文书
爱护环境建议书
2015/09/14 职场文书
Python自然语言处理之切分算法详解
2021/04/25 Python
MongoDB使用profile分析慢查询的步骤
2021/04/30 MongoDB