详解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 相关文章推荐
在你的网页中嵌入外部网页的方法
Apr 02 Javascript
Javascript(AJAX)解析XML的代码(兼容FIREFOX/IE)
Jul 11 Javascript
js RuntimeObject() 获取ie里面自定义函数或者属性的集合
Nov 23 Javascript
js中关于String对象的replace使用详解
May 24 Javascript
利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)
Feb 16 Javascript
node.js程序作为服务并在windows下开机自启动(用forever)
Mar 29 Javascript
Angular2学习教程之TemplateRef和ViewContainerRef详解
May 25 Javascript
JavaSctit 利用FileReader和滤镜上传图片预览功能
Sep 05 Javascript
jQuery实现的隔行变色功能【案例】
Feb 18 jQuery
详解Vue中的基本语法和常用指令
Jul 23 Javascript
react native 仿微信聊天室实例代码
Sep 17 Javascript
JS使用正则表达式提交页面验证的代码
Oct 16 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 数学运算验证码实现代码
2009/10/11 PHP
php 中文和编码判断代码
2010/05/16 PHP
PHP中的cookie不用刷新就生效的方法
2012/02/04 PHP
ThinkPHP查询中的魔术方法简述
2014/06/25 PHP
php微信开发自定义菜单
2016/08/27 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
2018/10/18 PHP
PHP常用函数之base64图片上传功能详解
2019/10/21 PHP
在chrome中window.onload事件的一些问题
2010/03/01 Javascript
基于jquery的图片懒加载js
2010/06/30 Javascript
chrome浏览器不支持onmouseleave事件的解决技巧
2013/05/31 Javascript
让table变成exls的示例代码
2014/03/24 Javascript
简单实现AngularJS轮播图效果
2020/04/10 Javascript
Angular中ng-options下拉数据默认值的设定方法
2017/06/21 Javascript
基于Vue实现图书管理功能
2017/10/17 Javascript
vue实现在表格里,取每行的id的方法
2018/03/09 Javascript
webpack@v4升级踩坑(小结)
2018/10/08 Javascript
详解微信小程序-扫一扫 wx.scanCode() 扫码大变身
2019/04/30 Javascript
uni-app之APP和小程序微信授权方法
2019/05/09 Javascript
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
2019/10/16 Python
python如何将两张图片生成为全景图片
2020/03/05 Python
Python爬取网页信息的示例
2020/09/24 Python
使用Django的JsonResponse返回数据的实现
2021/01/15 Python
CSS3制作轮播图的一种方法
2019/11/11 HTML / CSS
娱乐地球:Entertainment Earth
2020/01/08 全球购物
Ajax的工作原理
2015/12/04 面试题
护理专业推荐信
2013/11/07 职场文书
《乌塔》教学反思
2014/02/17 职场文书
先进事迹报告会主持词
2014/04/02 职场文书
讲解员培训方案
2014/05/04 职场文书
乡镇干部个人对照检查材料思想汇报(原创篇)
2014/09/28 职场文书
学生穿着不得体检讨书
2014/10/12 职场文书
教师培训简讯
2015/07/20 职场文书
2015年城乡环境综合治理工作总结
2015/07/24 职场文书
保外就医申请书范文
2015/08/06 职场文书
上手简单,功能强大的Python爬虫框架——feapder
2021/04/27 Python
方法汇总:Python 安装第三方库常用
2022/04/26 Python