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学习笔记之(Url,QueryString,Path)模块
Jan 13 NodeJs
nodejs实现遍历文件夹并统计文件大小
May 28 NodeJs
使用DNode实现php和nodejs之间通信的简单实例
Jul 06 NodeJs
Nodejs express框架一个工程中同时使用ejs模版和jade模版
Dec 28 NodeJs
浅谈Nodejs应用主文件index.js
Aug 28 NodeJs
NodeJS和BootStrap分页效果的实现代码
Nov 07 NodeJs
详解nodejs爬虫程序解决gbk等中文编码问题
Apr 06 NodeJs
ubuntu编译nodejs所需的软件并安装
Sep 12 NodeJs
nodejs async异步常用函数总结(推荐)
Nov 17 NodeJs
nodejs使用redis作为缓存介质实现的封装缓存类示例
Feb 07 NodeJs
NodeJs生成sitemap站点地图的方法示例
Jun 11 NodeJs
nodejs实现的http、https 请求封装操作示例
Feb 06 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 字符转义 注意事项
2009/05/27 PHP
Linux系统下PHP-FPM的安装和配置教程
2015/08/17 PHP
stripos函数知识点实例分享
2019/02/11 PHP
一个用js实现的页内搜索代码
2007/05/23 Javascript
JS实现鼠标单击与双击事件共存
2014/03/08 Javascript
js获取窗口相对于屏幕左边和上边的位置坐标
2014/05/15 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
2015/11/21 Javascript
JavaScript lodash常见用法系列小结
2016/08/24 Javascript
javascript self对象使用详解
2016/10/18 Javascript
Vue.js路由组件vue-router使用方法详解
2016/12/02 Javascript
JavaScript自动点击链接 防止绕过浏览器访问的方法
2017/01/19 Javascript
svg动画之动态描边效果
2017/02/22 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
2018/02/08 Javascript
Vue在 Nuxt.js 中重定向 404 页面的方法
2019/04/23 Javascript
微信小程序云开发之使用云存储
2019/05/17 Javascript
Vue中对iframe实现keep alive无刷新的方法
2019/07/23 Javascript
深入理解基于vue-cli的webpack打包优化实践及探索
2019/10/14 Javascript
javascript canvas封装动态时钟
2020/09/30 Javascript
让python的Cookie.py模块支持冒号做key的方法
2010/12/28 Python
Python线程的两种编程方式
2015/04/14 Python
Python实现网络端口转发和重定向的方法
2016/09/19 Python
Python Selenium Cookie 绕过验证码实现登录示例代码
2018/04/10 Python
python实现倒计时小工具
2019/07/29 Python
keras绘制acc和loss曲线图实例
2020/06/15 Python
Python os库常用操作代码汇总
2020/11/03 Python
matplotlib交互式数据光标实现(mplcursors)
2021/01/13 Python
html5实现输入框fixed定位在屏幕最底部兼容性
2020/07/03 HTML / CSS
孕妇内衣和胸罩:Cake Maternity
2018/07/16 全球购物
毕业生就业协议书
2014/04/11 职场文书
就业意向书
2014/07/29 职场文书
入党积极分子学习优秀共产党员先进事迹思想汇报
2014/09/13 职场文书
信访稳定工作汇报
2014/10/27 职场文书
房地产工程部经理岗位职责
2015/04/09 职场文书
2015年度团总支工作总结
2015/04/23 职场文书
2015年重阳节活动主持词
2015/07/30 职场文书
如何用python清洗文件中的数据
2021/06/18 Python