详解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左侧三级菜单导航实例代码
Sep 13 Javascript
DOM 事件流详解
Jan 20 Javascript
JS给超链接加确认对话框的方法
Feb 24 Javascript
jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
Aug 15 Javascript
Vuex和前端缓存的整合策略详解
May 09 Javascript
深入探究angular2 UI组件之primeNG用法
Jul 26 Javascript
浅谈vue引入css,less遇到的坑和解决方法
Jan 20 Javascript
解决angularJS中input标签的ng-change事件无效问题
Sep 13 Javascript
Emberjs 通过 axios 下载文件的方法
Sep 03 Javascript
Javascript执行流程细节原理解析
May 14 Javascript
vue 导航守卫和axios拦截器有哪些区别
Dec 19 Vue.js
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
Feb 26 Vue.js
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读取EXCEL文件 php excelreader读取excel文件
2012/12/06 PHP
PHP5各个版本的新功能和新特性总结
2014/03/16 PHP
PHP中使用虚代理实现延迟加载技术
2014/11/05 PHP
完美解决thinkphp验证码出错无法显示的方法
2014/12/09 PHP
标准版Eclipse搭建PHP环境的详细步骤
2015/11/18 PHP
jquery 页面全选框实践代码
2010/04/02 Javascript
js获取单元格自定义属性值的代码(IE/Firefox)
2010/04/05 Javascript
javascript针对DOM的应用分析(四)
2012/04/15 Javascript
Javascript 加载和执行-性能提高篇
2012/12/28 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
JavaScript中对象属性的添加和删除示例
2014/05/12 Javascript
JS实现当前页居中分页效果的方法
2015/06/18 Javascript
javascript与jquery中的this关键字用法实例分析
2015/12/24 Javascript
js编写当天简单日历效果【实现代码】
2016/05/03 Javascript
jquery自定义插件开发之window的实现过程
2016/05/06 Javascript
jQuery用noConflict代替$的实现方法
2017/04/12 jQuery
jQuery实现的简单动态添加、删除表格功能示例
2017/09/21 jQuery
vue-router 权限控制的示例代码
2017/09/21 Javascript
Vue中之nextTick函数源码分析详解
2017/10/17 Javascript
JavaScript变量声明var,let.const及区别浅析
2018/04/23 Javascript
微信小程序实现图片选择并预览功能
2019/07/25 Javascript
使用npm命令提示: 'npm' 不是内部或外部命令,也不是可运行的程序的处理方法
2020/05/14 Javascript
[01:02:10]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第一局
2016/02/26 DOTA
python通过pil将图片转换成黑白效果的方法
2015/03/16 Python
初学python的操作难点总结(新手必看篇)
2017/08/03 Python
对Python协程之异步同步的区别详解
2019/02/19 Python
python中如何打包用户自定义模块
2020/09/23 Python
香港卓悦化妆品官网:BONJOUR
2017/09/21 全球购物
《狐假虎威》教学反思
2014/02/07 职场文书
法律七进实施方案
2014/03/15 职场文书
民政局办理协议离婚(范本)
2014/10/25 职场文书
redis配置文件中常用配置详解
2021/04/14 Redis
pdf论文中python画的图Type 3 fonts字体不兼容的解决方案
2021/04/24 Python
Opencv中cv2.floodFill算法的使用
2021/06/18 Python
spring boot项目application.properties文件存放及使用介绍
2021/06/30 Java/Android
十大最强水系宝可梦,最美宝可梦排第三,榜首大家最熟悉
2022/03/18 日漫