在IE9浏览器中上传之前,请使用JavaScript检查文件大小

时间:2015-12-29 07:53:13

标签: jquery asp.net-mvc html5 flash internet-explorer

以下是我的ASP.NET MVC的一部分:当用户尝试在IE 9浏览器中上传文件时,它会在此行抛出错误this.files [0] .size; 因为IE 9浏览器支持html 5 api(FileReader)



<input type="file" name="FileToUpload" id="FileToUpload"  style="width: 100%;" />

<!-- begin snippet: js hide: false -->
&#13;
&#13;
&#13;

&#13;
&#13;
 $('#FileToUpload').bind('change', function () {
            
               var sizeInMB = '';
              
                   /* Other */
                      this.files[0].size gets the size of your file.
                   var sizeInBytes = this.files[0].size;
                      var sizeInMB = (sizeInBytes / (1024 * 1024)).toFixed(2);    2000
                    sizeInMB = $([sizeInBytes]).map(function () { return (this / 1024 / 1024).toFixed(2) })[0];
              
          
              
        });
&#13;
&#13;
&#13;

所以当我执行此行时,碰巧使用此片段  $(&#34;#FileToUpload&#34;)[0] .value i dont&#39;得到文件路径,我得到这样的 (C:\ fakepath \ MORETHAN2gbticket.zip)

有没有其他方法我可以获得文件大小对于IE 9浏览器。一种方法是可以使用Flash。然后为此我需要使用插件像(uploadify上传jQuery) 有没有其他我可以在不使用插件的情况下获得文件大小 任何人都可以指导我。

    var file = $("#FileToUpload");
           var objFSO = new ActiveXObject("Scripting.FileSystemObject");
           var filePath = $("#FileToUpload")[0].value;
            var objFile = objFSO.getFile(filePath);
            var fileSize = objFile.size; //size in kb

1 个答案:

答案 0 :(得分:0)

没有! IE版本9没有FileReader api,但是名为文件Api Lab 的原型:

enter image description here

您可以在此处查看兼容性表格@MDN

一个建议是使用后备来从服务器获取fileSize。

喜欢:

if(IE > 9){
   // use FileApi
}else{
   // put a call to the server to get the 
   // file size. an ajax call would be fine.
}