详解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.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
Mar 01 Javascript
3款实用的在线JS代码工具(国外)
Mar 15 Javascript
下拉菜单点击实现连接跳转功能的js代码
May 19 Javascript
高效的获取当前元素是父元素的第几个子元素
Oct 15 Javascript
jquery索引在使用中的一些困惑
Oct 24 Javascript
js每隔5分钟执行一次ajax请求的实现方法
Nov 27 Javascript
深入剖析JavaScript中的枚举功能
Mar 06 Javascript
浅谈JavaScript异常处理语句
Jun 26 Javascript
JavaScript中运算符规则和隐式类型转换示例详解
Sep 06 Javascript
Vue清除定时器setInterval优化方案分享
Jul 21 Javascript
Vue实现菜单切换功能
Nov 08 Javascript
JavaScript实现10秒后再次获取验证码
Dec 02 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/06/14 PHP
session在php5.3中的变化 session_is_registered() is deprecated in
2013/11/12 PHP
PHP开发框架kohana中处理ajax请求的例子
2014/07/14 PHP
php+ajax无刷新分页实例详解
2015/12/07 PHP
Laravel中log无法写入问题的解决
2017/06/17 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
JavaScript在IE中“意外地调用了方法或属性访问”
2008/11/19 Javascript
js操作textarea方法集合封装(兼容IE,firefox)
2011/02/22 Javascript
游览器中javascript的执行过程(图文)
2012/05/20 Javascript
JS文本获得焦点清除文本文字的示例代码
2014/01/13 Javascript
jQuery之Deferred对象详解
2014/09/04 Javascript
Javascript的setTimeout()使用闭包特性时需要注意的问题
2014/09/23 Javascript
三种Node.js写文件的方式
2016/03/08 Javascript
微信 java 实现js-sdk 图片上传下载完整流程
2016/10/21 Javascript
javascript设置文本框光标的方法实例小结
2016/11/04 Javascript
微信小程序 页面跳转如何实现传值
2017/04/05 Javascript
jquery.form.js异步提交表单详解
2017/04/25 jQuery
详解Vue中使用Echarts的两种方式
2018/07/03 Javascript
javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
2018/08/01 Javascript
谈谈JavaScript中super(props)的重要性
2019/02/12 Javascript
Vue Router 实现动态路由和常见问题及解决方法
2020/03/06 Javascript
python实现的阳历转阴历(农历)算法
2014/04/25 Python
Python使用zip合并相邻列表项的方法示例
2018/03/17 Python
PyCharm鼠标右键不显示Run unittest的解决方法
2018/11/30 Python
基于Python实现迪杰斯特拉和弗洛伊德算法
2020/05/27 Python
对python pandas读取剪贴板内容的方法详解
2019/01/24 Python
使用Python实现毫秒级抢单功能
2019/06/06 Python
python实现的读取网页并分词功能示例
2019/10/29 Python
CSS3之边框多颜色Border-color属性使用示例
2013/10/11 HTML / CSS
css3 伪类选择器快速复习小结
2019/09/10 HTML / CSS
行政管理毕业生自荐信
2014/02/24 职场文书
党风廉正建设个人工作总结
2015/03/06 职场文书
2016年大学生暑期社会实践活动总结
2016/04/06 职场文书
Python中rapidjson参数校验实现
2021/07/25 Python
Java实现房屋出租系统详解
2021/10/05 Java/Android
SpringBoot整合minio快速入门教程(代码示例)
2022/04/03 Java/Android