如何从这种链接获取图像类型?

时间:2018-01-31 12:00:02

标签: javascript jquery

我的问题是如何从这种链接中获取图像类型?

  

https://www.gravatar.com/avatar/71b0d516013802a2d67aeb7c2e77ed32?s=48&d=identicon&r=PG&f=1

例如,在HTML中这样:

<img src="https://www.gravatar.com/avatar/71b0d516013802a2d67aeb7c2e77ed32?s=48&amp;d=identicon&amp;r=PG&amp;f=1" alt="" width="24" height="24" class="-avatar js-avatar-me">

对于这样的链接http://localhost/assets/images/main.jpg,我试过

var imgType = url.split('.').pop(); 

对于我使用的something.jpg?name=blahsomething.jpg#blah这样的网址:

url.split('.').pop().split(/\#|\?/)[0]; 

获取链接。

1 个答案:

答案 0 :(得分:5)

由于内容是动态生成的,没有文件扩展名,因此您无法使用split()剖析网址。即使这样,依赖文件名也不准确,因为您可以简单地将任何文件重命名为.jpg。它可能仍然是application/text文件或任何其他MIME类型。

相反,您可以向图像的位置发出AJAX请求,并从响应中检索content-type标头,如下所示:

&#13;
&#13;
$.ajax({
  url: 'https://www.gravatar.com/avatar/71b0d516013802a2d67aeb7c2e77ed32?s=48&amp;d=identicon&amp;r=PG&amp;f=1',
  success: function(r, s, x){ 
    var type = x.getResponseHeader("content-type");
    console.log(type); 
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;