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 20 NodeJs
Nodejs进程管理模块forever详解
Jun 01 NodeJs
nodejs中实现路由功能
Dec 29 NodeJs
Nodejs学习笔记之NET模块
Jan 13 NodeJs
nodejs实现HTTPS发起POST请求
Apr 23 NodeJs
nodejs加密Crypto的实例代码
Jul 07 NodeJs
nodeJS实现路由功能实例代码
Jun 08 NodeJs
nodejs操作mongodb的增删改查功能实例
Nov 09 NodeJs
nodejs更改项目端口号的方法
May 13 NodeJs
nodejs文件夹深层复制功能
Sep 03 NodeJs
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
Feb 06 NodeJs
浅谈vue websocket nodeJS 进行实时通信踩到的坑
Sep 22 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
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
PHP的宝库目录--PEAR
2006/10/09 PHP
对squid中refresh_pattern的一些理解和建议
2009/04/17 PHP
Android App中DrawerLayout抽屉效果的菜单编写实例
2016/03/21 PHP
web页面数据展示新想法(json)
2010/06/08 Javascript
YUI Compressor压缩JavaScript原理及微优化
2013/01/07 Javascript
解析使用JS 清空File控件的路径值
2013/07/08 Javascript
javascript函数中参数传递问题示例探讨
2014/07/31 Javascript
js style动态设置table高度
2014/10/21 Javascript
JS实现跟随鼠标的链接文字提示框效果
2015/08/06 Javascript
微信小程序 Video API实例详解
2016/10/02 Javascript
js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前
2017/04/27 Javascript
Bootstrap框架建立树形菜单(Tree)的实例代码
2017/10/30 Javascript
利用Console来Debug的10个高级技巧汇总
2018/03/26 Javascript
NodeJS服务器实现gzip压缩的示例代码
2018/10/12 NodeJs
JS实现选项卡效果的代码实例
2019/05/20 Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
2019/12/29 Javascript
python中如何使用正则表达式的非贪婪模式示例
2017/10/09 Python
python遍历文件夹,指定遍历深度与忽略目录的方法
2018/07/11 Python
python正则表达式匹配[]中间为任意字符的实例
2018/12/25 Python
python自带tkinter库实现棋盘覆盖图形界面
2019/07/17 Python
Python使用Turtle库绘制一棵西兰花
2019/11/23 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
2020/02/07 Python
python实现从ftp服务器下载文件
2020/03/03 Python
Python如何对XML 解析
2020/06/28 Python
CSS3使用transition实现的鼠标悬停淡入淡出
2015/01/09 HTML / CSS
租租车:国际租车、美国租车、欧洲租车、特价预订国外租车(中文服务)
2018/03/28 全球购物
Watchshop德国:欧洲在线手表No.1
2019/06/20 全球购物
咖啡书吧创业计划书
2014/01/13 职场文书
接受捐赠答谢词
2014/01/27 职场文书
《假如》教学反思
2014/04/17 职场文书
护士自荐信范文
2015/03/25 职场文书
大学生学生会工作总结2015
2015/05/26 职场文书
升学宴家长致辞
2015/07/27 职场文书
python实现过滤敏感词
2021/05/08 Python
使用redis实现延迟通知功能(Redis过期键通知)
2021/09/04 Redis