详解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函数参数设置默认值的一种变通实现方法
May 26 Javascript
JavaScript设计模式之代理模式介绍
Dec 28 Javascript
使用AngularJS实现可伸缩的页面切换的方法
Jun 19 Javascript
jquery实现根据浏览器窗口大小自动缩放图片的方法
Jul 17 Javascript
JavaScript中匿名函数的递归调用
Jan 22 Javascript
浅谈angular2的http请求返回结果的subcribe注意事项
Mar 01 Javascript
Bootstrap.css与layDate日期选择样式起冲突的解决办法
Apr 07 Javascript
angular学习之ngRoute路由机制
Apr 12 Javascript
在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示)
May 02 Javascript
JavaScript 中的 this 简单规则
Sep 19 Javascript
JS与jQuery判断文本框还剩多少字符可以输入的方法
Sep 01 jQuery
JavaScript中的null和undefined用法解析
Sep 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的ddos攻击解决方法
2015/01/08 PHP
php版微信开发之接收消息,自动判断及回复相应消息的方法
2016/09/23 PHP
php微信开发之自定义菜单完整流程
2016/10/08 PHP
PHP实现简易blog的制作
2016/10/24 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
js css样式操作代码(批量操作)
2009/10/09 Javascript
javascript 动态生成私有变量访问器
2009/12/06 Javascript
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
2010/04/18 Javascript
JS实现点击按钮获取页面高度的方法
2015/11/02 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
jQuery属性选择器用法示例
2016/09/09 Javascript
Vue开发过程中遇到的疑惑知识点总结
2017/01/20 Javascript
通过button将form表单的数据提交到action层的实例
2017/09/08 Javascript
JS实现同一DOM元素上onClick事件与onDblClick事件并存的解决方法
2018/06/07 Javascript
微信小程序实现商城倒计时
2020/11/01 Javascript
微信小程序表单验证WxValidate的使用
2019/11/27 Javascript
[56:00]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第一局
2016/03/05 DOTA
[50:24]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
对Python实现简单的API接口实例讲解
2018/12/10 Python
python读取txt文件并取其某一列数据的示例
2019/02/19 Python
python 通过可变参数计算n个数的乘积方法
2019/06/13 Python
pandas读取CSV文件时查看修改各列的数据类型格式
2019/07/07 Python
在SQLite-Python中实现返回、查询中文字段的方法
2019/07/17 Python
Python通过队列来实现进程间通信的示例
2020/10/14 Python
利用Python函数实现一个万历表完整示例
2021/01/23 Python
css3实现圆锥渐变conic-gradient效果
2020/02/12 HTML / CSS
英国高端食品和葡萄酒超市:Waitrose
2016/08/23 全球购物
推荐信怎么写
2014/05/09 职场文书
招标承诺书
2014/08/30 职场文书
2014年园林绿化工作总结
2014/12/11 职场文书
老人节主持词
2015/07/04 职场文书
2016年领导干部廉政承诺书
2016/03/24 职场文书
2016年中学法制宣传日活动总结
2016/04/01 职场文书
PyTorch的Debug指南
2021/05/07 Python
将MySQL的表数据全量导入clichhouse库中
2022/03/21 MySQL
PyTorch中permute的使用方法
2022/04/26 Python