【问题标题】:node.js download image with unknown extension from urlnode.js 从 url 下载具有未知扩展名的图像
【发布时间】:2015-06-25 21:48:46
【问题描述】:

我的问题是从给定链接下载图片,但有一个问题 - 我不知道图片扩展名(bmp、jpg、png 等) 我正在使用请求模块,并成功下载了 png 扩展的图像:

var fs = require('fs');
var request = require('request');
var url = 'www.images.com/image01.';
request(url+ '.png').pipe(fs.createWriteStream('./image.png')); 

但是当我不知道图像扩展名时该怎么办。我想也许我可以检查响应,如果它是 = '404' ,那么第二次尝试从以下位置下载图像: url + '.[another extension]' 等等。看起来就像回调地狱。

【问题讨论】:

    标签: javascript node.js request


    【解决方案1】:

    向 URL 发出请求,检查请求标头中的 Content-type 以获取文件的 Mime-type。您可以在项目中有一个名为 mime-types.js

    的文件

    在您下载文件的地方,您可以对该文件提出请求:

        var mime = request('mime-types.js');
    

    你的 mime-types.js 文件的内容应该是这样的

        const JPG = "image/jpeg";
        module.exports = {
              JPG: JPG
        }
    

    然后您可以在您拥有的不同 mime 类型和请求结果之间切换。

    您可以在此处找到 mime 类型:https://en.wikipedia.org/wiki/Internet_media_type#Type_image

    【讨论】:

    • 你的意思是 var mime = require('mime-types.js'); ?
    • 我做到了!谢谢 MeetJoeBlack
    【解决方案2】:

    执行HEAD 请求并检查HTTP 响应消息Content-Type 标头。它应该包括specified MIME-types for images 之一。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-28
      • 2013-05-20
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 2018-06-18
      相关资源
      最近更新 更多