以下是我的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;
$('#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;
所以当我执行此行时,碰巧使用此片段 $(&#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
答案 0 :(得分:0)
没有! IE版本9没有FileReader api,但是名为文件Api Lab 的原型:
您可以在此处查看兼容性表格@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.
}