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创建web服务器之hello world程序
Aug 20 NodeJs
用nodejs搭建websocket服务器
Jan 23 NodeJs
NodeJS实现微信公众号关注后自动回复功能
May 31 NodeJs
深入解析nodejs HTTP服务
Jul 25 NodeJs
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
Sep 06 NodeJs
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
Jan 05 NodeJs
nodejs acl的用户权限管理详解
Mar 14 NodeJs
Nodejs把接收图片base64格式保存为文件存储到服务器上
Sep 26 NodeJs
CentOS7中源码编译安装NodeJS的完整步骤
Oct 13 NodeJs
nodejs图片处理工具gm用法小结
Dec 12 NodeJs
nodejs实现UDP组播示例方法
Nov 04 NodeJs
windows如何把已安装的nodejs高版本降级为低版本(图文教程)
Dec 14 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
业余方法DIY电子管FM收音机
2021/03/02 无线电
Laravel框架集合用法实例浅析
2020/05/14 PHP
javascript 仿QQ滑动菜单效果代码
2010/09/03 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
jquery+CSS3实现淘宝移动网页菜单效果
2015/08/31 Javascript
JS实现的打字机效果完整实例
2016/06/20 Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
2016/12/17 Javascript
微信小程序商品详情页规格属性选择示例代码
2017/10/30 Javascript
使用nodejs+express实现简单的文件上传功能
2017/12/27 NodeJs
详解webpack-dev-server的简单使用
2018/04/02 Javascript
JS对象和字符串之间互换操作实例分析
2019/02/02 Javascript
sortable+element 实现表格行拖拽的方法示例
2019/06/07 Javascript
VUE单页面切换动画代码(全网最好的切换效果)
2019/10/31 Javascript
ES6的异步操作之promise用法和async函数的具体使用
2019/12/06 Javascript
es6数组includes()用法实例分析
2020/04/18 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
python3.0 字典key排序
2008/12/24 Python
Python中遍历字典过程中更改元素导致异常的解决方法
2016/05/12 Python
Python使用三种方法实现PCA算法
2017/12/12 Python
python统计字母、空格、数字等字符个数的实例
2018/06/29 Python
python通过http下载文件的方法详解
2019/07/26 Python
python pygame实现滚动横版射击游戏城市之战
2019/11/25 Python
python tkinter GUI绘制,以及点击更新显示图片代码
2020/03/14 Python
Python基于jieba, wordcloud库生成中文词云
2020/05/13 Python
win10安装python3.6的常见问题
2020/07/01 Python
pycharm2020.1.2永久破解激活教程,实测有效
2020/10/29 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
2021/02/06 Python
西班牙伏林航空公司:Vueling
2016/08/05 全球购物
石油大学毕业生自荐信
2014/01/28 职场文书
小学生暑假家长评语
2014/04/17 职场文书
大学理论知识学习自我鉴定
2014/04/28 职场文书
青春励志演讲稿范文
2014/08/25 职场文书
关于读书的演讲稿300字
2014/08/27 职场文书
酒店开业主持词
2015/07/02 职场文书
如何使用SQL Server语句创建表
2022/04/12 SQL Server
JS前端使用canvas实现扩展物体类和事件派发
2022/08/05 Javascript