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
我的问题是从给定 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