为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Cats萌萌 2018-12-06 14:16:30
使用JS验证文件大小,使用方法为 var filesize = obj_file.files[0].size; 在IE11,IE10和chrome等现代浏览器上没有任何问题,但是在IE9\8\7上会报错。 具体信息是: typeerror:无法获取未定义或null引用的属性 网上说因为IE9以上才会支持 filesize = obj_file.files[0].size; 这个方法。但是现在不想改变客户端的体验。请问有什么妙招来解决这个问题吗?
查看完整描述

3 回答

?
智慧大石

TA贡献1946条经验 获得超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实现,未测试。

查看完整回答
反对 回复 2018-12-24
?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

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

查看完整回答
反对 回复 2018-12-24
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

ie8是阻止用户读取文件大小的,只有插件flash的fileupload

查看完整回答
反对 回复 2018-12-24
  • 3 回答
  • 0 关注
  • 428 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信