继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

关于input type="file"上传图片后,ie8,ie9如何获取图片的大小

囡柠
关注TA
已关注
手记 7
粉丝 1
获赞 166

在工作中,遇到个问题,关于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>

以上,是自己目前采用的解决方法,如果有好的解决方法,烦请留言告知,谢谢!

打开App,阅读手记
14人推荐
发表评论
随时随地看视频慕课网APP

热门评论

我直接给你抛

SCRIPT429: Automation 服务器不能创建对象

你还怎么兼容?想靠焦点除去安全性?除了路径可以,ActiveXObject根本创建不了,除非改Internet选项里的安全

感觉用Ajax跟后台交互应该可以

赞\(≧▽≦)/\(≧▽≦)/

查看全部评论