详解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 相关文章推荐
点击表单提交时出现jQuery没有权限的解决方法
Jul 23 Javascript
使用AngularJS来实现HTML页面嵌套的方法
Jun 17 Javascript
JS给swf传参数的实现方法
Sep 13 Javascript
Node.js 实现简单小说爬虫实例
Nov 18 Javascript
浅析jQuery操作select控件的取值和设值
Dec 07 Javascript
浅谈js停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
Feb 08 Javascript
浅谈vue+webpack项目调试方法步骤
Sep 11 Javascript
ActiveX控件的使用-js实现打印超市小票功能代码详解
Nov 22 Javascript
JS中的两种数据类型及实现引用类型的深拷贝的方法
Aug 12 Javascript
Web安全之XSS攻击与防御小结
Dec 13 Javascript
JavaScript基于数组实现的栈与队列操作示例
Dec 22 Javascript
vue实现可移动的悬浮按钮
Mar 04 Vue.js
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数组函数序列之array_flip() 将数组键名与值对调
2011/11/07 PHP
PHP函数shuffle()取数组若干个随机元素的方法分析
2016/04/02 PHP
不错的JS中变量相关的细节分析
2007/08/13 Javascript
JavaScript 事件参考手册
2008/12/24 Javascript
javascript延时加载之defer测试
2012/12/28 Javascript
jQuery实现的原图对比窗帘效果
2014/06/15 Javascript
JavaScript函数定义的常见注意事项小结
2014/09/16 Javascript
js实现横向百叶窗效果网页切换动画效果的方法
2015/03/02 Javascript
JavaScript正则获取地址栏中参数的方法
2017/03/02 Javascript
微信小程序使用slider设置数据值及switch开关组件功能【附源码下载】
2017/12/09 Javascript
vue 点击按钮增加一行的方法
2018/09/07 Javascript
记录vue项目中遇到的一点小问题
2019/05/14 Javascript
elementUI select组件使用及注意事项详解
2019/05/29 Javascript
浅析JavaScript 函数柯里化
2020/09/08 Javascript
浅析Python中MySQLdb的事务处理功能
2016/09/21 Python
详谈Python2.6和Python3.0中对除法操作的异同
2017/04/28 Python
用生成器来改写直接返回列表的函数方法
2017/05/25 Python
Python实现查找数组中任意第k大的数字算法示例
2019/01/23 Python
在python下读取并展示raw格式的图片实例
2019/01/24 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
2019/06/24 Python
Python argparse模块应用实例解析
2019/11/15 Python
pytorch 常用线性函数详解
2020/01/15 Python
在python里使用await关键字来等另外一个协程的实例
2020/05/04 Python
用CSS3来实现社交分享按钮
2014/11/11 HTML / CSS
加拿大折扣、优惠券和交易网站:WagJag
2018/02/07 全球购物
阿迪达斯荷兰官方网站:adidas荷兰
2018/03/16 全球购物
凌阳科技股份有限公司C++程序员面试题笔试题
2014/11/20 面试题
介绍一下sql server的安全性
2014/08/10 面试题
人资专员岗位职责
2014/04/04 职场文书
上海世博会口号
2014/06/19 职场文书
个人年终总结开头
2015/03/06 职场文书
向雷锋同志学习倡议书
2015/04/27 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
民事调解书范文
2015/05/20 职场文书
高中家长意见怎么写
2015/06/03 职场文书
教你如何让spark sql写mysql的时候支持update操作
2022/02/15 MySQL