详解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写的实用看图工具实现代码
Jul 26 Javascript
将文本输入框内容加入表中的js代码
Aug 18 Javascript
javascript设计模式之对象工厂函数与构造函数详解
Jul 30 Javascript
基于jQuery实现在线选座之高铁版
Aug 24 Javascript
浅析Bootstrap缩略图组件与警示框组件
Apr 29 Javascript
vue.js+boostrap项目实践(案例详解)
Sep 21 Javascript
浅谈Vue父子组件和非父子组件传值问题
Aug 22 Javascript
webpack4 css打包压缩问题的解决
May 18 Javascript
angularjs使用div模拟textarea文本框的方法
Oct 02 Javascript
JS选取DOM元素常见操作方法实例分析
Dec 10 Javascript
JS实现头条新闻的经典轮播图效果示例
Jan 30 Javascript
vue实现购物车案例
May 30 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中批量修改文件后缀名的函数代码
2011/10/23 PHP
php汉字转拼音的示例
2014/02/27 PHP
PHP中的命名空间详细介绍
2015/07/02 PHP
Java中final关键字详解
2015/08/10 PHP
YiiFramework入门知识点总结(图文教程)
2015/12/28 PHP
如何快速的呈现我们的网页的技巧整理
2007/07/01 Javascript
Javascript技巧之不要用for in语句对数组进行遍历
2010/10/20 Javascript
JavaScript自定义DateDiff函数(兼容所有浏览器)
2012/03/01 Javascript
jQuery获取当前对象标签名称的方法
2014/02/07 Javascript
textarea不能通过maxlength属性来限制字数的解决方法
2014/09/01 Javascript
Javascript学习笔记之函数篇(五) : 构造函数
2014/11/23 Javascript
jQuery实现防止提交按钮被双击的方法
2015/03/24 Javascript
js实现简单排列组合的方法
2016/01/27 Javascript
JavaScript中点击事件的写法
2016/06/28 Javascript
深入理解Vue transition源码分析
2017/07/30 Javascript
JavaScript错误处理操作实例详解
2019/01/04 Javascript
推荐15个最好用的JavaScript代码压缩工具
2019/02/13 Javascript
JavaScript数据结构与算法之检索算法示例【二分查找法、计算重复次数】
2019/02/22 Javascript
关于JavaScript 数组你应该知道的事情(推荐)
2019/04/10 Javascript
使用vue实现各类弹出框组件
2019/07/03 Javascript
layui+jquery支持IE8的表格分页方法
2019/09/28 jQuery
vue学习之Vue-Router用法实例分析
2020/01/06 Javascript
es6 for循环中let和var区别详解
2020/01/12 Javascript
Python可变参数函数用法实例
2015/07/07 Python
python 图像处理画一个正弦函数代码实例
2019/09/10 Python
pytorch快速搭建神经网络_Sequential操作
2020/06/17 Python
Pandas DataFrame求差集的示例代码
2020/12/13 Python
基于python+selenium自动健康打卡的实现代码
2021/01/13 Python
Python爬虫后获取重定向url的两种方法
2021/01/19 Python
英国床垫在线:Mattress Online
2016/12/07 全球购物
新加坡网上化妆品店:Best Buy World
2018/05/18 全球购物
水利公司纪检监察自我鉴定
2014/02/25 职场文书
节约电力资源的建议书
2014/03/12 职场文书
大宝sod蜜广告词
2014/03/21 职场文书
学生党员公开承诺书
2014/05/28 职场文书
捐资助学感谢信
2015/01/21 职场文书