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访问ActiveX对象,以操作Access数据库为例。
Dec 15 NodeJs
Windows系统中安装nodejs图文教程
Feb 28 NodeJs
nodejs调用cmd命令实现复制目录
May 04 NodeJs
nodejs实现遍历文件夹并统计文件大小
May 28 NodeJs
nodejs实现发出蜂鸣声音(系统报警声)的方法
Jan 18 NodeJs
nodejs简单访问及操作mysql数据库的方法示例
Mar 15 NodeJs
解决nodejs的npm命令无反应的问题
May 17 NodeJs
nodejs中用npm初始化来创建package.json的实例讲解
Oct 10 NodeJs
NodeJS搭建HTTP服务器的实现步骤
Oct 12 NodeJs
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
May 30 NodeJs
浅谈使用nodejs搭建web服务器的过程
Jul 20 NodeJs
浅谈JS和Nodejs中的事件驱动
May 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新手上路(二)
2006/10/09 PHP
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
2013/06/25 PHP
PHP父类调用子类方法的代码例子
2014/04/09 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
2016/01/07 PHP
PHPCMS V9 添加二级导航的思路详解
2016/10/20 PHP
[原创]php实现数组按拼音顺序排序的方法
2017/05/03 PHP
基于php数组中的索引数组和关联数组详解
2018/03/12 PHP
PHP PDOStatement::debugDumpParams讲解
2019/01/30 PHP
jQuery获取Radio,CheckBox选择的Value值(示例代码)
2013/12/12 Javascript
ExtJs动态生成treepanel的Json格式
2015/07/19 Javascript
jquery实现鼠标点击后展开列表内容的导航栏效果
2015/09/14 Javascript
基于javascript实现图片预加载
2016/01/05 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
jquery仿京东商品放大浏览页面
2017/06/06 jQuery
vue元素实现动画过渡效果
2017/07/01 Javascript
vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法
2018/07/12 Javascript
ES6 更易于继承的类语法的使用
2019/02/11 Javascript
Vue 解决在element中使用$notify在提示信息中换行问题
2020/11/11 Javascript
vue实现验证用户名是否可用
2021/01/20 Vue.js
python模拟登录百度代码分享(获取百度贴吧等级)
2013/12/27 Python
Python格式化css文件的方法
2015/03/10 Python
使用Python中PDB模块中的命令来调试Python代码的教程
2015/03/30 Python
对Python3.6 IDLE常用快捷键介绍
2018/07/16 Python
对python pandas读取剪贴板内容的方法详解
2019/01/24 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
使用jupyter notebook运行python和R的步骤
2020/08/13 Python
Born鞋子官网:Born Shoes
2017/04/06 全球购物
送给他或她的礼物:FUN.com
2018/08/17 全球购物
信息系统专业个人求职信范文
2013/12/07 职场文书
详细的大学生创业计划书模板
2014/01/27 职场文书
社保代办委托书怎么写
2014/10/06 职场文书
主持稿开场白
2015/06/01 职场文书
党小组考察意见
2015/06/02 职场文书
今日说法观后感
2015/06/08 职场文书
观看《筑梦中国》纪录片心得体会
2016/01/18 职场文书
2016教师政治学习心得体会
2016/01/23 职场文书