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

时间:2015-06-25 11:13:28

标签: javascript node.js request

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

2 个答案:

答案 0 :(得分:1)

请求URL,检查文件的Mime类型请求标题中的 Content-type 。您可以在项目中拥有一个名为 mime-types.js

的文件

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


  [PDOException]
  SQLSTATE[HY000]: General error: 1364 Field 'user_id' doesn't have a default value

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

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

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

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

答案 1 :(得分:0)

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