在工作中,遇到个问题,关于input type="file",上传文件后,获取该文件的大小,对ie9以上,chrome,firefox等浏览器,可以采用document.getElementById('file').files[0].size来获取大小。但ie8,ie9不兼容此方法,可以采用以下方法:
1.js部分
//ie10,firefox,chrome支持
var fileSize;
function fileChange(target)
{
fileSize = target.files[0].size;
alert(fileSize);//弹出文件大小
}
//兼容ie8,ie9,ie9以上也支持
function getFileSize(obj){
try{
var file = obj;
file.select();
file.blur();
var path = document.selection.createRange().text;
var fso = new ActiveXObject("Scripting.FileSystemObject");
fileSize = fso.GetFile(path).size;
alert(fileSize);//弹出文件大小
}catch(e){
alert(e+"\n"+"如果错误为:Error:Automation 服务器不能创建对象;"+"\n"+"请按以下方法配置浏览器:"+"\n"+"请打开【Internet选项-安全-Internet-自定义级别-ActiveX控件和插件-对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本(不安全)-点击启用-确定】");
return window.location.reload();
}
}
2.html部分(主要显示怎么调用上面的函数)
<form name=formens method="post" action="uploadpic" enctype="multipart/form-data">
<input type="file" name="UPLOADS" id="UPLOADS" onChange="fileChange(this);">
<input type="file" name="UPLOADS0" id="UPLOADS0" onChange="getFileSize(this);">
</form>
以上,是自己目前采用的解决方法,如果有好的解决方法,烦请留言告知,谢谢!
热门评论
我直接给你抛
你还怎么兼容?想靠焦点除去安全性?除了路径可以,ActiveXObject根本创建不了,除非改Internet选项里的安全
感觉用Ajax跟后台交互应该可以
赞\(≧▽≦)/\(≧▽≦)/