JS验证文件大小问题,报:TypeError未定义错误

使用JS验证文件大小,使用方法为

                var filesize = obj_file.files[0].size;

在IE11,IE10和chrome等现代浏览器上没有任何问题,但是在IE9\8\7上会报错。

具体信息是:

typeerror:无法获取未定义或null引用的属性

网上说因为IE9以上才会支持

filesize = obj_file.files[0].size;

这个方法。但是现在不想改变客户端的体验。请问有什么妙招来解决这个问题吗?

Cats萌萌
浏览 429回答 3
3回答

智慧大石

方案一: var a = document.getElementById('loadfile').value; $('#myImage').attr('src',a); var imgbytes = document.getElementById('myImage').size; var imgkbytes = Math.round(parseInt(imgbytes)/1024); alert(imgkbytes+' KB'); 利用Image对象有size这种属性来抓取。未测试~   方案二 var myFSO = new ActiveXObject("Scripting.FileSystemObject"); var filepath = document.upload.file.value; var thefile = myFSO.getFile(filepath); var size = thefile.size; alert(size + " bytes"); 利用ActiveX实现,未测试。

qq_遁去的一_1

这个问题估计无解,客户端使用fso是有风险的,浏览器默认是不会开这个权限的,fso几乎有权限可以把c盘格式化。

天涯尽头无女友

ie8是阻止用户读取文件大小的,只有插件flash的fileupload
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript