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