javascript - 查找不带扩展名的图像的 MIME 类型

标签 javascript dropbox

我正在制作一个小型 Dropbox 图像幻灯片。我使用 Dropbox Public 文件夹共享 index.html 文件,该文件在“img”文件夹中查找一堆图像以创建幻灯片。

我用以下方法做到了这一点,它很hacky但有效

var findFiles = function(slideLimit){
  var limit = slideLimit;
  var img = [];

  for(var i = 1; i < limit; i++){

    var src = "<li class='slide slide-"+i+"'><img src='img/"+i+".png' onerror='imgError(this);''></li>"
    $('.frame ul').append(src);

  }

}

效果很好,但我想提供一个不依赖用户必须使用 .png 的解决方案。

我希望省略扩展程序可以在 Dropbox 上运行,但事实证明不行:

    var src = "<li class='slide slide-"+i+"'><img src='img/"+i+"' onerror='imgError(this);''></li>"

绞尽脑汁,最好是这样

if( mimeType = png)
   i + '.png'
else if (mimeType = gif)
   i + '.gif'
etc

解决方案有点卡住了。有人有什么好主意吗?可能需要我采取不同的不同方向......

最佳答案

最好的方法是让用户告诉您扩展程序

var findFiles = function(slideLimit, ext){
    var limit = slideLimit,
        img = [],
        lis = [];
    ext = ext || "png";   
    for (var i = 1; i < limit; i++) {
        lis.push("<li class='slide slide-"+i+"'><img src='img/"+i+"."+ext+"' onerror='imgError(this);''></li>");
    }
    $('.frame ul').append(lis.join(""));
}

对服务器执行 Ping 操作以查找文件,缺点是需要时间不断访问服务器以查看文件是否存在

var findFiles = function(slideLimit){
    var limit = slideLimit,
        img = [],
        lis = [],
        extList = ["png","gif"];

    function testExt () {
        var ext = extList.shift();
        if (ext) {
            var img = new Image();
            img.onload = function () {
                load(ext);
            };
            img.onerror = testExt;
            img.src="img/1." + ext;
        }
    }

    function load (ext){
        for (var i = 1; i < limit; i++) {
            lis.push("<li class='slide slide-"+i+"'><img src='img/"+i+"."+ext+"' onerror='imgError(this);''></li>");
        }
        $('.frame ul').append(lis.join(""));
    }

    testExt(); 
}

[注意两个代码片段都未经测试,将它们写在编辑器中]

关于javascript - 查找不带扩展名的图像的 MIME 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14963996/

相关文章:

javascript - 根据对象中的另一个变量对空值进行排序

javascript - 用类 'ul:first-child' 替换选择器 '.list_wrapper:first-child'

javascript - 在 Canvas 上绘制图像时如何避免 CORS 错误?

javascript - 可以使用 $parse 或 $eval 来计算 Stingified bool 方程吗?

javascript - 我想在 Infragistics WebDataGrid 的 javascript 函数中触发 CRUD 行更新操作

iOS 在不打开 Dropbox 应用程序的情况下授权 Dropbox

authentication - 在 Webview2 中登录 Dropbox 错误消息 "Your browser appears to be blocking dropboxcaptcha.com, which is required for authentication.."

android - 是否可以在没有任何库的情况下仅使用 GET 和 POST 请求来使用 Dropbox REST API?

ios - 在iOS的保管箱中未获取文件大小

javascript - 使用 d3.layout.stack() 从图层访问自定义坐标