【问题标题】:How to guess file extension with JavaScript (client side)如何使用 JavaScript 猜测文件扩展名(客户端)
【发布时间】:2017-04-11 17:01:10
【问题描述】:

我有一个很小的 ​​webapp,里面有多个文件夹(每个文件夹名称是一个 ID),每个文件夹中都有一个可以是 JPGPNG 的图像> 或 GIF

结构是这样的:

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

我不知道文件的真正扩展名,很多文章有JPG,有的有PNG,有的有GIF扩展名,这就是所有的可能性。

我如何猜测和设置正确的扩展名,也许使用一种onerror 事件?

感谢阅读,请原谅我的英语不好!

【问题讨论】:

  • 您必须从客户端弄清楚吗?服务器无法为您解决这个问题吗?
  • 你不能在你的 json 中填充扩展名吗?
  • @MikeC 有趣,也许我可以从网络服务发送它。
  • @Dshiz 不一样,“检查”是我需要重复的过程,我需要猜测,所以多次检查直到找出正确的扩展名。

标签: javascript jquery html file-extension


【解决方案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;
}

【讨论】:

    猜你喜欢
    • 2014-09-25
    • 2014-12-25
    • 1970-01-01
    • 2021-02-08
    • 2010-09-16
    • 2011-08-22
    • 2016-02-27
    • 2012-10-02
    • 1970-01-01
    相关资源
    最近更新 更多