2014-05-21 3 views
2

https://github.com/aFarkas/webshim/에서 filereader shim을 얻을 수있는 사람이 누구나 IE9에서 작동하도록했습니다.filereader 심, ie9에서 작동하지 않을 수 있습니다.

event.target.files가 정의되지 않았기 때문에 선택한 파일에 대한 정보를 얻을 수 없습니까?

내가 선택되어있는 파일에 대한 액세스를 얻을 수

$('#fp_file').on('change',function() { 
    fileSelected($(this)); 
}); 

// File selected 
function fileSelected(ele) 
{  

var file = $(ele).prop('files')[0]; 

var fileSize = 0; 

if(file) 
{ 
    if(file.size > 1024 * 1024) 
    { 
     fileSize = (Math.round(file.size * 100/(1024 * 1024))/100).toString() + 'MB'; 
    } 
    else 
    { 
     fileSize = (Math.round(file.size * 100/1024)/100).toString() + 'KB'; 
    } 

    $('#fileName').html(file.name); 
    $('#fileSize').html(fileSize); 
    $('#fileType').html(file.type); 
    $('#file_dets').show('slide'); 

} 
else 
{ 
    alert('no file : ' + file); 
} 

}

다음과 같은 HTML ... 그러나

<!DOCTYPE html> 
<html> 
<head> 
<title>Financial Promotions Form</title> 
<link rel="stylesheet" type="text/css" href="financial_promotion.css" /> 
<script src="jquery-1.7.1.min.js" type="text/javascript"></script>   
<script src="js-webshim/minified/extras/modernizr-custom.js" type="text/javascript"></script> 
<script src="js-webshim/minified/polyfiller.js" type="text/javascript"></script>  

</head> 
<body> 

<div id="wrapper"> 

<form id="financial_promotion" action="financial_promotions.pl" method="post" enctype="multipart/form-data">    
      <fieldset> 
       <legend>Promotion Documentation&nbsp;</legend> 
        <label for="fp_file">Upload File</label> 

        <input class="ws-filereader" type="file" name="fp_file" id="fp_file" /> 

      </fieldset> 
      <fieldset id="file_dets"> 
       <legend>File Information</legend> 
       <div> 
        <label for="fileName">Name</label><span id="fileName"></span> 
       </div> 
       <div> 
        <label for="fileSize">Size</label><span id="fileSize"></span> 
       </div> 
       <div> 
        <label for="fileType">Type</label><span id="fileType"></span> 
       </div> 
      </fieldset>         
    </form>   
    </div> 

    </body> 
    </html> 

을 가지고, 그렇지 않습니다 $(ele).prop('files')[0]; 또는 event.target.files 또는 다른 조합을 사용하면 문제가 될 수 있습니다. IE9에서는 항상 정의되지 않습니다.

답변

0

bah humbug!

GITHUB의 예제는 작동하게 만드는 비트를 주석 처리합니다 !!!

나는이 문서에서이 문제를보고 잘못이 말한 가정
//webshims.setOptions('basePath', '/js-webshim/minified/shims/'); 

- 사용하지 않는 -이 설정하세요! - 주석 처리 된 코드의 특성입니다.

필자가 필요한 것은 basePath를 올바르게 설정해야만 작동합니다.

webshims.setOptions({ 
    'basePath':'/my/folder/path/js-webshim/minified/shims/' 
    }); 

webshims.polyfill('forms forms-ext filereader'); 

는 나 같은 영업 이익이 더 머리를 왼쪽 없다 어디 내가 본 스레드의 모든 사람들 다른 사람을 도움이되기를 바랍니다!

----> UPDATE 2014년 5월 27일 < ----

그것은이 polyfil이/심 작동하지 않는 나의 신념이다. 일단 IE9에서 실행되면, 플래시 객체가 입력 요소를 오버라이드한다는 것을 알 수 있습니다. 따라서 파일이 선택되면, 기본 입력 요소는 선택된 파일로 채워지지 않으므로 양식을 다음과 같이 제출할 수 없습니다. 입력이 비어 있습니다.

관련 문제