2012-12-03 62 views
0

我想用下面的HTML和JS文件上傳到我的服務器:如何在IE中上傳文件?

<script type="text/javascript"> 
    $(function() { 
     $('#uploadimageBtn').click(function() { 
       $('#imageInput').click(); 
     }); 

     $('#imageInput').change(function(event) { 
       $('#loading-spinner').show(); 
       var file = $(this).val(); 
       var fileName = file.split("\\"); 
       $('#uploadimageBtn-inner').html("Uploading..."); 
       $('#uploadForm').submit(); 
       event.preventDefault(); 
     });     
    }); 
</script> 

<div id="uploadimageBtn"> 
    <g:img id="loading-spinner" style="display:none;" file="loading.gif"/> 
    <div id="uploadimageBtn-inner">Click to upload a file</div> 
</div> 

<g:form name="uploadForm" action="update" method="post" enctype="multipart/form-data"> 
    <div style="height: 0px;width: 0px; overflow:hidden;"> 
     <input id="imageInput" name="image" type="file" value="upload"/> 
    </div> 
</g:form> 

它可以在所有主要瀏覽器完美,但在IE瀏覽器沒有奏效。

那麼,爲了使它工作,我必須改變什麼?

+1

你應該看看這個答案。我發現它是我見過的最好的,不使用插件或任何東西:http://stackoverflow.com/a/13679816/1264846。在有人告訴你問題是什麼後,你應該做更多的研究並嘗試自己解決問題。 @Magus給了你很多可以離開的地方。 –

+0

@James Kleeh這很棒,但它對IE沒有幫助。那麼你能幫我解決下面的問題嗎?我花了很多時間,不知道該怎麼做。 – confile

回答

4

Internet Explorer對文件輸入有一定的安全性。您無法觸發文件輸入的點擊。而且我認爲你不能聽文件輸入的某個事件。

如果你想要做這樣的事情,你必須使用帶有不可見文件輸入的「竅門」。你把一個不可見的文件輸入放在img上,當用戶點擊img時,他實際上點擊輸入文件。但是,您無法克隆IE上的文件輸入,因此您必須從DOM中分離該輸入,將其放入表單中,然後提交。

你可以檢查:http://fineuploader.com/ 我認爲它可以做你想做的事情。

+0

您可以修改上面的代碼以使其適用於IE嗎? – confile