详解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 相关文章推荐
javascript 精粹笔记
May 09 Javascript
javascript简单性能问题及学习笔记
Feb 04 Javascript
javascript实现点击按钮让DIV层弹性移动的方法
Feb 24 Javascript
JS拖拽插件实现步骤
Aug 03 Javascript
jQuery实用技巧必备(中)
Nov 03 Javascript
基于jQuery实现放大镜特效
Oct 19 Javascript
第九章之路径分页标签与徽章组件
Apr 25 Javascript
JS使用cookie实现只出现一次的广告代码效果
Apr 22 Javascript
mpvue中使用flyjs全局拦截的实现代码
Sep 13 Javascript
vue 对象添加或删除成员时无法实时更新的解决方法
May 01 Javascript
Vue中的循环及修改差值表达式的方法
Aug 29 Javascript
JS实现可用滑块滑动的缓动图代码
Sep 01 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自动获取目录下的模板的代码
2010/08/08 PHP
PHP易混淆函数的区别及用法汇总
2014/11/22 PHP
详解php中curl返回false的解决办法
2019/03/18 PHP
发一个自己用JS写的实用看图工具实现代码
2008/07/26 Javascript
Javascript 中文字符串处理额外注意事项
2009/11/15 Javascript
javascript 基础篇2 数据类型,语句,函数
2012/03/14 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
2014/07/28 Javascript
13 款最热门的 jQuery 图像 360 度旋转插件推荐
2014/12/09 Javascript
JavaScript判断字符长度、数字、Email、电话等常用判断函数分享
2015/04/01 Javascript
javascript正则表达式中分组详解
2016/07/17 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
2016/11/24 Javascript
Vue中的v-cloak使用解读
2017/03/27 Javascript
浅谈jQuery框架Ajax常用选项
2017/07/08 jQuery
JS实现点击复选框变更DIV显示状态的示例代码
2017/12/18 Javascript
在vue中获取token,并将token写进header的方法
2018/09/26 Javascript
JS实现点击生成UUID的方法完整实例【基于jQuery】
2019/06/12 jQuery
如何从头实现一个node.js的koa框架
2019/06/17 Javascript
vue 中固定导航栏的实例代码
2019/11/01 Javascript
Python cx_freeze打包工具处理问题思路及解决办法
2016/02/13 Python
Python3编程实现获取阿里云ECS实例及监控的方法
2017/08/18 Python
PyCharm 2020 激活到 2100 年的教程
2020/03/25 Python
Python压缩模块zipfile实现原理及用法解析
2020/08/14 Python
html5手机键盘弹出收起的处理
2020/01/20 HTML / CSS
购买瑞典当代设计的腕表和太阳眼镜:TRIWA
2016/10/30 全球购物
加拿大领先的优质厨具产品在线购物网站:Golda’s Kitchen
2017/11/17 全球购物
台湾SHOPRO购物行家:亚洲首创影视.3C.家电.优质购物平台
2018/05/07 全球购物
美国汽车零部件和配件网站:CarParts
2019/03/13 全球购物
关于Java finally的面试题
2016/04/27 面试题
企业行政文员岗位职责
2013/12/03 职场文书
工程专业应届生求职信
2014/02/19 职场文书
机械系毕业生求职信
2014/05/28 职场文书
停车场管理协议书范本
2014/10/08 职场文书
党建工作汇报材料
2014/12/24 职场文书
留学推荐信中文范文
2015/03/26 职场文书
信仰纪录片观后感
2015/06/08 职场文书
Java版 简易五子棋小游戏
2022/05/04 Java/Android