node.js 从 url 下载扩展名未知的图片

node.js download image with unknown extension from url

我的问题是从给定 link 下载图像,但有一个问题 - 我不知道图像扩展名(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]' 等等。看起来像回调地狱。

执行 HEAD 个请求并检查 HTTP 响应消息 Content-Type header。它应该包括 specified MIME-types for images.

之一

向 URL 发出请求,检查 Mime-type 请求的 header 中的 Content-type的文件。你可以在你的项目中有一个文件,叫做 mime-types.js

下载文件的位置,您可以请求该文件:

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

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

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

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

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