详解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中的排序算法代码
Feb 22 Javascript
js与jquery中获取当前鼠标的x、y坐标位置的代码
May 23 Javascript
JS 获取浏览器和屏幕宽高等信息代码
Mar 31 Javascript
使用JavaScript+canvas实现图片裁剪
Jan 30 Javascript
原生js实现网页顶部自动下拉/收缩广告效果
Jan 20 Javascript
关于使用axios的一些心得技巧分享
Jul 02 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
Sep 13 Javascript
vue打包的时候自动将px转成rem的操作方法
Jun 20 Javascript
vue.js 实现输入框动态添加功能
Jun 25 Javascript
element UI upload组件上传附件格式限制方法
Sep 04 Javascript
vue实现微信分享功能
Nov 28 Javascript
Vue-CLI3.x 设置反向代理的方法
Dec 06 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
laravel 5.4 + vue + vux + element的环境搭配过程介绍
2018/04/26 PHP
详解php伪造Referer请求反盗链资源
2019/01/24 PHP
在子窗口中关闭父窗口的一句代码
2013/10/21 Javascript
javascript获取url上某个参数的方法
2013/11/08 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
2015/10/09 Javascript
浅谈JavaScript中数组的增删改查
2016/06/20 Javascript
jQuery复制节点用法示例(clone方法)
2016/09/08 Javascript
Vue.js弹出模态框组件开发的示例代码
2017/07/26 Javascript
简单的网页广告特效实例
2017/08/19 Javascript
AngularJS中下拉框的基本用法示例
2017/10/11 Javascript
利用node.js如何创建子进程详解
2017/12/09 Javascript
说说如何利用 Node.js 代理解决跨域问题
2019/04/22 Javascript
vue-cli脚手架引入弹出层layer插件的几种方法
2019/06/24 Javascript
JS对象属性的检测与获取操作实例分析
2020/03/17 Javascript
vue实现编辑器键盘抬起时内容跟随光标距顶位置向上滚动效果
2020/05/28 Javascript
vue-preview动态获取图片宽高并增加旋转功能的实现
2020/07/29 Javascript
python自动化工具日志查询分析脚本代码实现
2013/11/26 Python
python文件的md5加密方法
2016/04/06 Python
利用python爬取软考试题之ip自动代理
2017/03/28 Python
Python3一行代码实现图片文字识别的示例
2018/01/15 Python
用Python实现数据的透视表的方法
2018/11/16 Python
django自带serializers序列化返回指定字段的方法
2019/08/21 Python
超全Python图像处理讲解(多模块实现)
2020/04/13 Python
Python如何输出警告信息
2020/07/30 Python
python中re模块知识点总结
2021/01/17 Python
5分钟让你掌握css3阴影、倒影、渐变小技巧(小编推荐)
2016/08/15 HTML / CSS
HTML5自定义视频播放器源码
2020/01/06 HTML / CSS
Paul Smith英国官网:英国国宝级时装品牌
2019/03/21 全球购物
骨干教师考核方案
2014/05/09 职场文书
预备党员群众路线思想汇报2014
2014/10/25 职场文书
护士个人总结范文
2015/02/13 职场文书
八年级数学教学反思
2016/02/17 职场文书
Filebeat 采集 Nginx 日志的方法
2021/03/31 Servers
python关于集合的知识案例详解
2021/05/30 Python
如何使用PyCharm及常用配置详解
2021/06/03 Python
Win10 和 Win11可以共存吗? win10/11产品生命周期/服务更新介绍
2021/11/21 数码科技