详解node.js 下载图片的 2 种方式


Posted in Javascript onMarch 02, 2018

具体代码如下所示:

var request=require("request");
var fs=require("fs");
function download1(url,filename,fn){
request(url).pipe(fs.createWriteStream(filename).on("close",function(err,res){
if(err){
console.log(err);
}else{
fn&&fn();
}
}))
}
function download2(url,filename,fn){
request.get({uri:url, encoding:'binary'},function(err,res){
if(!err){
fs.writeFile(filename,res.body,"binary",function(err,res){
if(!err){
fn&&fn();
}else{
console.log(err);
}
})
}
})
}

ps:下面看下nodejs 下载远程图片的实现代码,具体代码如下所示:

var express = require('express');
var request = require('request');
var http = require('http');
var url = require('url');
var fs = require("fs");
var router = express.Router();
/* GET home page. */
router.get('/', function (req, res, next) {
  var url = "http://www.valu.cn/images/1.gif";
  //request('http://www.valu.cn/images/1.gif').pipe(fs.createWriteStream('./public/upload/downImg/logonew.png'));
  var req = http.get(url, function (res) {
    var imgData = "";
    res.setEncoding("binary"); //一定要设置response的编码为binary否则会下载下来的图片打不开
    res.on("data", function (chunk) {
      imgData += chunk;
    });
    res.on("end", function () {
      fs.writeFile("./public/upload/downImg/logonew.png", imgData, "binary", function (err) {
        if (err) {
          console.log("保存失败");
        }
        console.log("保存成功");
      });
    });
    res.on("error", function (err) {
      console.log("请求失败");
    });
  });
  req.on('error', function (err) {
    console.log("请求失败2" + err.message);
  });
  res.render('index', {title: '首页2'});
});
module.exports = router;

总结

以上所述是小编给大家介绍的node.js 下载图片的 2 种方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
小型js框架veryide.librar源代码
Mar 05 Javascript
Jquery 选中表格一列并对表格排序实现原理
Dec 15 Javascript
中文字符串截取的js函数代码
Apr 17 Javascript
jquery实现弹出层完美居中效果
Mar 03 Javascript
javascript监听鼠标滚轮事件浅析
Jun 05 Javascript
javascript实现拖动元素交换位置
Nov 29 Javascript
Fullpage.js固定导航栏-实现定位导航栏
Mar 17 Javascript
AngularJS入门教程之ng-checked 指令详解
Aug 01 Javascript
jquery实现表单获取短信验证码代码
Mar 13 Javascript
vue组件 $children,$refs,$parent的使用详解
Jul 31 Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
Jun 30 Javascript
自定义Vue组件打包、发布到npm及使用教程
May 22 Javascript
vue2.0+vue-dplayer实现hls播放的示例
Mar 02 #Javascript
详解vue2.0+vue-video-player实现hls播放全过程
Mar 02 #Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
Mar 02 #Javascript
浅谈FastClick 填坑及源码解析
Mar 02 #Javascript
利用vue和element-ui设置表格内容分页的实例
Mar 02 #Javascript
vue将时间戳转换成自定义时间格式的方法
Mar 02 #Javascript
Element-ui table中过滤条件变更表格内容的方法
Mar 02 #Javascript
You might like
php无限极分类递归排序实现方法
2014/11/11 PHP
CodeIgniter控制器之业务逻辑实例分析
2016/01/20 PHP
HTML中不支持静态Expando的元素的问题
2007/03/08 Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
2011/11/21 Javascript
一个简单的js树形菜单
2011/12/09 Javascript
JavaScript 和 Java 的区别浅析
2013/07/31 Javascript
JavaScript修改浏览器tab标题小技巧
2015/01/06 Javascript
js使用心得分享
2015/01/13 Javascript
AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
2016/01/25 Javascript
jQuery处理XML文件的几种方法
2016/06/14 Javascript
JavaScript实战之菜单特效
2016/08/16 Javascript
input框中的name和id的区别
2016/11/16 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的方法
2016/11/29 Javascript
关于页面刷新vuex数据消失问题解决方案
2017/07/03 Javascript
详解从买域名到使用pm2部署node.js项目全过程
2018/03/07 Javascript
vscode中vue-cli项目es-lint的配置方法
2018/07/30 Javascript
利用JS实现一个同Excel表现的智能填充算法
2018/08/13 Javascript
浅谈Vue数据响应
2018/11/05 Javascript
微信小程序实现简单评论功能
2018/11/28 Javascript
Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
2014/06/10 Python
使用python实现个性化词云的方法
2017/06/16 Python
python嵌套字典比较值与取值的实现示例
2017/11/03 Python
python把1变成01的步骤总结
2019/02/27 Python
Python实现去除图片中指定颜色的像素功能示例
2019/04/13 Python
如何教少儿学习Python编程
2020/07/10 Python
Python正则re模块使用步骤及原理解析
2020/08/18 Python
html5 canvas实现圆形时钟代码分享
2013/12/25 HTML / CSS
1688平价精选商城:阿里集团旗下,工厂出厂价格直销
2017/04/24 全球购物
Merrell迈乐澳大利亚网站:购买户外登山鞋
2017/05/28 全球购物
JSF面试题:Jsf中的核心类用那些?有什么作用?LiftCycle六大生命周期是什么?
2014/07/17 面试题
党员个人批评与自我批评
2014/10/14 职场文书
杨善洲电影观后感
2015/06/04 职场文书
同学聚会祝酒词
2015/08/10 职场文书
幼儿园大班教育随笔
2015/08/14 职场文书
python获取对象信息的实例详解
2021/07/07 Python
MySQL七种JOIN类型小结
2021/10/24 MySQL