我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Node.js调用fs.renameSync报错怎么办

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Node.js调用fs.renameSync报错怎么办

这篇文章主要介绍了Node.js调用fs.renameSync报错怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

在写一个文件上传的功能时候,调用fs.renameSync方法错误

出错 代码所在如下:

 function upload(response,request){
 console.log("upload called");
 var form = new formidable.IncomingForm();
 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 class="lazy" data-src='/show' />");
  response.end();
 });
 }

大致分析后,预计是因为 跨磁盘分区移动 或操作文件会有权限问题。

下面提供两种解决办法:

方法一:

主要利用fs的createReadStream、createWriteSream和unlinkSync方法

具体代码如下:

 function upload(response,request){
 console.log("upload called");
 var form = new formidable.IncomingForm();
 console.log("about to parse");
 form.parse(request, function(error, fields, files) {
  console.log("parsing done");

 // fs.renameSync(files.upload.path, "./tmp/test.jpg");
  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);
  });

  response.writeHead(200, {"Content-Type": "text/html"});
  response.write("received image:<br/>");
  response.write("<img class="lazy" data-src='/show' />");
  response.end();
 });
 }

PS:我用的node版本是0.10.69,如果使用的是0.6以下的版本,可以使用util.pump

相应代码只需将上面的代码中readStream.on处改成:(注意引入util模块)

util.pump(readStream,writeStream, function() {
 fs.unlinkSync('files.upload.path');
});

方法二:

这种就简洁很多了

添加一个 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(, {"Content-Type": "text/html"});
  response.write("received image:<br/>");
  response.write("<img class="lazy" data-src='/show' />");
  response.end();
 });
 }

感谢你能够认真阅读完这篇文章,希望小编分享的“Node.js调用fs.renameSync报错怎么办”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Node.js调用fs.renameSync报错怎么办

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Node.js调用fs.renameSync报错怎么解决

这篇“Node.js调用fs.renameSync报错怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Node.js调
2023-07-04

Node.js调用fs.renameSync报错如何解决

这篇文章主要讲解了“Node.js调用fs.renameSync报错如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Node.js调用fs.renameSync报错如何解决”吧!在写一
2023-06-17

python 3调用paramiko模块报错AttributeError: module该怎么办

python 3调用paramiko模块报错AttributeError: module该怎么办,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python 3调
2023-06-04

react.component 报错怎么办

react.component报错的解决办法:1、打开相应的react文件,查找“class Counter extends Component {static propTypes = {...”语句,将等号改为冒号;2、修改“{"presets": ["react", "es2015", "stage-0"]}”即可。
2023-05-14

canvas.toDataURL()报错怎么办

小编给大家分享一下canvas.toDataURL()报错怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!报错详尽信息Uncaught DOMExceptio
2023-06-09

PHPCMS出现调用时间错误怎么办?

PHPCMS是一款常用的开源内容管理系统,广泛应用于各类网站开发中。然而,有时候在使用PHPCMS的过程中会出现调用时间错误,导致网站无法正常运行。本文将介绍一些常见的PHPCMS调用时间错误及解决方法,并提供具体的代码示例,帮助读者解决这
PHPCMS出现调用时间错误怎么办?
2024-03-14

Springboot FeignClient调用报错怎么解决

这篇文章主要讲解了“Springboot FeignClient调用报错怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Springboot FeignClient调用报错怎么解决”吧
2023-06-22

Python调用phantomsj报错怎么解决

在调用PhantomJS时可能会遇到各种错误,以下是一些常见的解决方法:1. 检查PhantomJS是否正确安装:确认已经正确安装了PhantomJS,并且路径已经添加到系统的环境变量中。可以在命令行中输入`phantomjs --vers
2023-09-21

pandas merge报错怎么办

小编给大家分享一下pandas merge报错怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!pandas 做merge的时候报这个错:df22 = pd.m
2023-06-14

webpack4 react报错怎么办

webpack4 react报错的解决办法:1、进入全局安装的webpack目录下;2、把安装的webpack版本删除;3、执行命令“npm un webpack npm un webpack-cli”;4、再执行“npm i webpack-dev-server@3.10.2”命令即可。
2023-05-14

node server.js 报错怎么办

node server.js报错是因为路径不对,其解决办法:1、进入cmd窗口;2、切换到项目路径下的“server.js”;3、重新执行“node server.js”命令即可解决报错问题。
2023-05-14

node  import报错怎么办

node import报错的解决办法:1、在项目根目录下执行“npm install --save babel-corenpm install --save babel-preset-env”;2、在项目根目录下创建一个名字为“.babelrc”的文件;3、用“npm start”和“babel-node app.js”运行项目即可。
2023-05-14

node gm 报错怎么办

node gm报错的解决办法:1、安装“ImageMagick 6.x”;2、在环境目录Path中增加ImageMagick安装目录,并修改代码为“require('gm').subClass({imageMagick: true});”即可。
2023-05-14

Django migrate报错怎么办

这篇文章主要介绍Django migrate报错怎么办,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前言在讲解如何解决migrate报错原因前,我们先要了解migrate做了什么事情,migrate:将新生成的迁移脚
2023-06-15

编程热搜

目录