详解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 相关文章推荐
用Javascript 和 CSS 实现脚注(Footnote)效果
Sep 09 Javascript
JS图片自动轮换效果实现思路附截图
Apr 30 Javascript
json属性名为什么要双引号(个人猜测)
Jul 31 Javascript
jQuery实现的产品自动360度旋转展示特效源码分享
Aug 21 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
May 23 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
Aug 20 Javascript
详细分析JS函数去抖和节流
Dec 05 Javascript
vue如何解决循环引用组件报错的问题
Sep 22 Javascript
微信小程序系列之自定义顶部导航功能
May 21 Javascript
微信小程序 高德地图路线规划实现过程详解
Aug 05 Javascript
vue+koa2搭建mock数据环境的详细教程
May 18 Javascript
针对Vue路由history模式下Nginx后台配置操作
Oct 22 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
日本收入最高的漫画家:海贼王作者版税年收入高达8.45亿元
2020/03/04 日漫
针对初学PHP者的疑难问答(1)
2006/10/09 PHP
PHP程序级守护进程的实现与优化的使用概述
2013/05/02 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
2014/09/04 PHP
thinkphp跨库操作的简单代码实例
2016/09/22 PHP
jquery 图片轮换效果
2010/07/29 Javascript
借助script进行Http跨域请求:JSONP实现原理及代码
2013/03/19 Javascript
jQuery基本选择器选择元素使用介绍
2013/04/18 Javascript
javascript继承机制实例详解
2014/11/20 Javascript
jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
2015/06/25 Javascript
JavaScript实现带缓冲效果的随屏滚动漂浮广告代码
2015/11/06 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
2016/02/25 Javascript
js前端实现多图图片上传预览的两个方法(推荐)
2016/11/18 Javascript
基于three.js编写的一个项目类示例代码
2018/01/05 Javascript
jQuery实现左右滑动的toggle方法
2018/03/03 jQuery
VUE前后端学习tab写法实例
2019/08/06 Javascript
JavaScript 实现同时选取多个时间段的方法
2019/10/17 Javascript
Ajax获取node服务器数据的完整步骤
2020/09/20 Javascript
[54:27]TNC vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python单例模式的两种实现方法
2017/08/14 Python
使用python os模块复制文件到指定文件夹的方法
2019/08/22 Python
Django 路由层URLconf的实现
2019/12/30 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
2020/01/20 Python
jupyter notebook参数化运行python方式
2020/04/10 Python
使用tkinter实现三子棋游戏
2021/02/25 Python
CSS3绘制圆角矩形的简单示例
2015/09/28 HTML / CSS
会计实习生自我鉴定
2013/12/12 职场文书
2014年党员整改措施范文
2014/09/21 职场文书
2014年机关作风建设工作总结
2014/10/23 职场文书
教师群众路线学习心得体会
2014/11/04 职场文书
2014年终工作总结范本
2014/12/15 职场文书
委托书格式要求
2015/01/28 职场文书
离婚律师函范本
2015/05/27 职场文书
幼儿园元旦主持词
2015/07/06 职场文书
暑期工社会实践报告
2015/07/13 职场文书
2016年推广普通话宣传周活动总结
2016/04/06 职场文书