繁体   English   中英

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

[英]node.js download image with unknown extension from url

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

向URL发出请求,检查请求标题中的Content-type以获取文件的Mime类型。 您可以在项目中拥有一个名为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

执行HEAD请求并检查HTTP响应消息的Content-Type标头。 它应包括images指定MIME类型之一

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM