2016-04-12 6 views
1

Я использую скрытый IFrame в своем HTML для загрузки файла. Я хочу найти размер загруженного файла. Как это можно сделать.Размер файла, загруженного в javascript, используя скрытый IFrame

function fileselect(iframeid,ctrlFilePath,ctrlHdnFilePath,ctrlHdnFileName,taskName,filelist,ctrlhdnstoredfilename,ctrlhdnurlpath) 
{ 
     var frame=document.getElementById(iframeid); 
     frame.setAttribute("filepath", ctrlFilePath); 
     frame.setAttribute("filename", ctrlHdnFileName); 
     frame.setAttribute("urlpath", ctrlhdnurlpath); 
     var wdf = window.document.getElementById(iframeid).contentWindow.document.forms[0]; 
     var ctrlFileUpload = wdf.file; 
     ctrlFileUpload.click(); 
     if (ctrlFileUpload.value != "") 
     { 
      document.getElementById(ctrlFilePath).value=ctrlFileUpload.value; 
      fileupload(); 
     } 
} 

function fileupload() 
{ 
     var objIFrame = document.getElementsByTagName("IFRAME"); 
     for(var i=0; i<objIFrame.length; i++) 
     { 
      var wdf = window.document.getElementById(objIFrame[i].id).contentWindow.document.forms[0]; 
      var ctrlFileUpload = wdf.file; 
      if (ctrlFileUpload.value != "") { 
       wdf.submit(); 
       alert("File is " + wdf.file.size + " bytes in size"); 
      } 
      delete wdf; 
      wdf=null; 
     } 
} 

Я попытался выше код wdf.file.size, но каждый раз, когда я получаю размер закачиваемого файла в 20 байт, даже если это не так.

EDIT:

Я также попытался wdf.file.files[0].size, но я получаю wdf.file.files как неопределенные.

html загружен в IFrame.

<form name="process" id="process" method="post" action="xyz.jsp" enctype="multipart/form-data"> 
     <input type=file id="file" name="file" > 

</form> 

Ищете что-то, что работает в IE6 +

ответ

0

Я получил этот код, который работает на IE 11.

var myFSO = new ActiveXObject("Scripting.FileSystemObject"); 
var filepath = document.upload.file.value; 
var thefile = myFSO.getFile(filepath); 
var size = thefile.size; 
alert(size + " bytes");