2012-05-24 68 views
3

我已經使用IE瀏覽器的ActiveXObject,但它不工作。我在js中獲得了其他瀏覽器的文件大小,但無法獲取IE瀏覽器的文件大小。我用這個代碼如下: -如何獲得使用JavaScript或JQuery的IE瀏覽器的文件大小?

if ($.browser.msie==true) 
{ 
    var fileSystemObject = new ActiveXObject("Scripting.FileSystemObject"); 
    var path = document.uploadDocumentForm.documentUpload.value; 
    var file = fileSystemObject.getFile(path); 
    var size = file.size; 
    alert(size); 

/* var a = document.getElementById(fileId).value; 
      $('#myImage').attr('src',a); 
      var imgbytes = document.getElementById('myImage').fileSize;  
      alert("here"+imgbytes); 
      var imgkbytes = Math.round(parseInt(imgbytes)/1024);  */ 

} 
else 
{ 
       var fileInput = $("#"+fileId)[0]; 
       var imgbytes = fileInput.files[0].size; 
       var imgkbytes = Math.round(parseInt(imgbytes)/(1024)); 
} 

任何人都可以幫助我獲得IE瀏覽器的文件大小。我已經通過了所有的想法,但無法獲得IE瀏覽器的文件大小。請提供這個想法或代碼...

+0

fileinput的值是一個* fakepath *,我不認爲你可以從它得到一個FileSystem對象... – Bergi

回答

0

一個建議,作品是關注。

<script type="text/javascript"> 
function AlertFilesize(){ 
    if(window.ActiveXObject){ 
     var fso = new ActiveXObject("Scripting.FileSystemObject"); 
     var filepath = document.getElementById('fileInput').value; 
     var thefile = fso.getFile(filepath); 
     var sizeinbytes = thefile.size; 
    }else{ 
     var sizeinbytes = document.getElementById('fileInput').files[0].size; 
    } 

    var fSExt = new Array('Bytes', 'KB', 'MB', 'GB'); 
    fSize = sizeinbytes; i=0;while(fSize>900){fSize/=1024;i++;} 

    alert((Math.round(fSize*100)/100)+' '+fSExt[i]); 
} 
</script> 

<input id="fileInput" type="file" onchange="AlertFilesize();" /> 

它來自另一個答案Get file size before uploading

相關問題