详解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 相关文章推荐
firefox下对ajax的onreadystatechange的支持情况分析
Dec 14 Javascript
ExtJS PropertyGrid中使用Combobox选择值问题
Jun 13 Javascript
有关DOM元素与事件的3个谜题
Nov 11 Javascript
jQuery实现点击文本框弹出热门标签的提示效果
Nov 17 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
Jan 22 Javascript
jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
Jun 28 Javascript
微信小程序实战之运维小项目
Jan 17 Javascript
vue.js移动端tab组件的封装实践实例
Jun 30 Javascript
vue组件父子间通信之综合练习(聊天室)
Nov 07 Javascript
three.js中文文档学习之通过模块导入
Nov 20 Javascript
微信公众平台获取access_token的方法步骤
Mar 29 Javascript
javascript二维数组和对象的深拷贝与浅拷贝实例分析
Oct 26 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中全面阻止SQL注入式攻击分析小结
2012/01/30 PHP
封装ThinkPHP的一个文件上传方法实例
2014/10/31 PHP
PHP CURL 内存泄露问题解决方法
2015/02/12 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
[原创]PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】
2019/07/12 PHP
JavaScript 利用Cookie记录用户登录信息
2009/12/08 Javascript
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
2010/03/11 Javascript
jQuery 瀑布流 浮动布局(一)(延迟AJAX加载图片)
2012/05/23 Javascript
JQUERY实现左侧TIPS滑进滑出效果示例
2013/06/27 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
2015/05/12 Javascript
jquery操作angularjs对象
2015/06/26 Javascript
自己动手制作基于jQuery的Web页面加载进度条插件
2016/06/03 Javascript
实例分析nodejs模块xml2js解析xml过程中遇到的坑
2017/03/18 NodeJs
AngularJS2 与 D3.js集成实现自定义可视化的方法
2017/12/01 Javascript
详解如何用babel转换es6的class语法
2018/04/03 Javascript
深入理解Vue父子组件生命周期执行顺序及钩子函数
2018/08/12 Javascript
微信小程序API—获取定位的详解
2019/04/30 Javascript
泛谈JS逻辑判断选择器 || &&
2019/05/24 Javascript
解决Vue打包后访问图片/图标不显示的问题
2019/07/25 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
2019/09/18 Javascript
微信小程序实现音频文件播放进度的实例代码
2020/03/02 Javascript
[01:40]2014DOTA2国际邀请赛 三冰SOLO赛后采访恶搞
2014/07/09 DOTA
Python数据类型详解(四)字典:dict
2016/05/12 Python
Django ModelForm组件使用方法详解
2019/07/23 Python
Python插件机制实现详解
2020/05/04 Python
CSS3的resize属性使用初探
2015/09/27 HTML / CSS
html通过canvas转成base64的方法
2019/07/18 HTML / CSS
中职应届生会计求职信
2013/10/23 职场文书
高一物理教学反思
2014/01/24 职场文书
小学优秀班干部事迹材料
2014/05/25 职场文书
2015年人事科工作总结
2015/04/28 职场文书
提档介绍信范文
2015/10/22 职场文书
MySQL 如何分析查询性能
2021/05/12 MySQL
总结Pyinstaller打包的高级用法
2021/06/28 Python
mysql如何查询连续记录
2022/05/11 MySQL
Python+pyaudio实现音频控制示例详解
2022/07/23 Python