2013-02-19 2 views
0

작은 Dropbox 이미지 슬라이드 쇼를 함께 해킹하고 있습니다. Dropbox Public 폴더를 사용하여 'img'폴더에서 이미지를 묶어 슬라이드를 만드는 index.html 파일을 공유합니다.확장명이없는 이미지의 MIME 유형 찾기

내가 다음이 작업을 수행, 그것은 해키하지만 좋은 작품

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를 사용할 필요 사용자에 의존하지 않는 솔루션을 제공하고 싶습니다.

내가 보관 작업을 할 확장자를 생략 기대하고 있지만 판명되었다

더 : 내 머리를 건 드리는 봤는데

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("")); 
} 

핑 파일의 서버를 알 수 있도록 ... 내가 다른 다른 방향을 복용

+0

확장 유형을 설정하는 옵션을 지정하십시오. – epascarello

+0

@epascarello 답장을 보내 주셔서 감사합니다. 무슨 뜻인지는 모르겠지만, 정교 할 수있는 기회는 무엇입니까? – cupcakekid

+1

'var findFiles = function (slideLimit, ext) {ext = ext || "png"; ' – epascarello

답변

2

가장 좋은 방법을 필요로 하락 할 수 있음 그것은 타격 유지하는 시간이 걸립니다 파일 거기

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(); 
} 

는 [모두 코드 snipplets이 검증되지 않은 참고하여 편집기에서 여기를 썼다] 경우 서버를 확인합니다