如何用JavaScript猜测文件扩展名(客户端)

时间:2017-04-11 17:01:11

标签: javascript jquery html5 file-extension

我有一个小小的webapp,我有多个文件夹(每个文件夹名称都是一个ID),每个文件夹中都有一个图像,可以是 JPG PNG GIF

结构如下:

$("#logo").attr('src','../images/article/'+json.id+'/logo.jpg');

我不知道文件的真正扩展名,许多文章都有JPG,其他文章有PNG,还有一些有GIF扩展名,这就是所有可能性。

我如何猜测并设置正确的扩展名,可能使用某种onerror事件?

感谢阅读,请原谅我糟糕的英语!

1 个答案:

答案 0 :(得分:1)

您可以使用jquery .each()函数检查文件是否存在,如下所示。如果你需要传递json.id,你需要将它嵌套在for循环中。注意:我没有测试过这段代码。

var url;
$.each([ 'gif', 'jpg', 'png' ], function( index, value ) {
  url='../images/article/'+json.id+'/logo.' + value);
  if(UrlExists(url)){
    $("#logo").attr('src',url);
  } else {
    //handle false
  }
});

function UrlExists(url)
{
  var http = new XMLHttpRequest();
  http.open('HEAD', url, false);
  http.send();
  return http.status!=404;
}