jQuery获取file控件中图片的宽高与大小


Posted in Javascript onAugust 04, 2016

问题

如何判断input file表单里上传的图片的宽高和大小呢?

解决方案

这个时候图片还没真正上传,也不是在页面上展示,不能使用$(“#id”).width(),$(“#id”).height()这种方式。

在Stack Overflow找到一个方法获取input file图片文件的宽高:

var _URL = window.URL || window.webkitURL;
$("#file").change(function (e) {
  var file, img;
  if ((file = this.files[0])) {
    img = new Image();
    img.onload = function () {
      alert(this.width + " " + this.height);
    };
    img.src = _URL.createObjectURL(file);
  }
});

发现可以用,仅在火狐中测试了,其他浏览器兼容性未知,因为后台使用,所以暂且不管兼容性,拿来封装了一下。

我把这个函数完善了一下,获取input file图片的宽高和大小,如下:

//获取input图片宽高和大小
function getImageWidthAndHeight(id, callback) {
  var _URL = window.URL || window.webkitURL;
  $("#" + id).change(function (e) {
    var file, img;
    if ((file = this.files[0])) {
      img = new Image();
      img.onload = function () {
        callback && callback({"width": this.width, "height": this.height, "filesize": file.size});
      };
      img.src = _URL.createObjectURL(file);
    }
  });
}

这里使用了一个回调方法,回调方法的参数是这个json对象,包含宽度、高度和大小,在jQuery中这样调用

(function () {
  //省略其他代码
  getImageWidthAndHeight('image_file', function (obj) {
   if (obj.width != 843 || obj.height != 1038) {
    $.messager.alert('操作提示', '弹窗图片宽高必须是843*1038px');
   }
  });
})(jQuery)

好了,这样就OK了。以上就是jQuery获取intput file图片的宽高和大小的全部内容了,相信本文的内容会对大家平时使用jQuery和图片上传的时候很有帮助的。

Javascript 相关文章推荐
javascript 字符 Escape,encodeURI,encodeURIComponent
Jul 09 Javascript
ie下动态加态js文件的方法
Sep 13 Javascript
JavaScript高级程序设计 阅读笔记(十三) js定义类或对象
Aug 14 Javascript
尝试在让script的type属性等于text/html
Jan 15 Javascript
jquery实现背景墙聚光灯效果示例分享
Mar 02 Javascript
JS实现表格数据各种搜索功能的方法
Mar 03 Javascript
jquery判断input值不为空的方法
Jun 05 Javascript
echarts3 使用总结(绘制各种图表,地图)
Jan 05 Javascript
微信小程序 滚动到某个位置添加class效果实现代码
Apr 19 Javascript
使用puppeteer破解极验的滑动验证码
Feb 24 Javascript
解决vue 按钮多次点击重复提交数据问题
May 10 Javascript
JavaScript实现alert弹框效果
Nov 19 Javascript
JS 数字转换为大写金额的简单实例
Aug 04 #Javascript
js事件冒泡、事件捕获和阻止默认事件详解
Aug 04 #Javascript
使用伪命名空间封装保护独自创建的对象方法
Aug 04 #Javascript
全面解析Angular中$Apply()及$Digest()的区别
Aug 04 #Javascript
window.open不被拦截的简单实现代码(推荐)
Aug 04 #Javascript
js实现多图左右切换功能
Aug 04 #Javascript
window.open打开窗口被拦截的快速解决方法
Aug 04 #Javascript
You might like
实现php加速的eAccelerator dll支持文件打包下载
2007/09/30 PHP
php REMOTE_ADDR之获取访客IP的代码
2008/04/22 PHP
php中邮箱地址正则表达式实现与详解
2012/04/24 PHP
php中怎么搜索相关联数组键值及获取之
2013/10/17 PHP
php给一组指定关键词添加span标签的方法
2015/03/31 PHP
详解PHP中的PDO类
2015/07/06 PHP
简单的php购物车代码
2020/06/05 PHP
Javascript实现动态菜单添加的实例代码
2013/07/05 Javascript
js+css实现的简单易用兼容好的分页
2013/12/30 Javascript
jQuery菜单插件用法实例
2015/07/25 Javascript
jQuery结合CSS制作动态的下拉菜单
2015/10/27 Javascript
js倒计时抢购实例
2015/12/20 Javascript
基于jquery实现简单的分页控件
2016/03/17 Javascript
JS原型链怎么理解
2016/06/27 Javascript
Bootstrap Table服务器分页与在线编辑应用总结
2016/08/08 Javascript
NODE.JS跨域问题的完美解决方案
2016/10/20 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
2016/12/02 Javascript
那些精彩的JavaScript代码片段
2017/01/12 Javascript
微信小程序 动画的简单实例
2017/10/12 Javascript
使用JS监听键盘按下事件(keydown event)
2019/11/07 Javascript
小程序自定义圆形进度条
2020/11/17 Javascript
微信小程序实现自定义底部导航
2020/11/18 Javascript
[01:35:53]完美世界DOTA2联赛PWL S3 Magma vs GXR 第二场 12.13
2020/12/17 DOTA
python使用PyV8执行javascript代码示例分享
2013/12/04 Python
python3简单实现微信爬虫
2015/04/09 Python
对Python多线程读写文件加锁的实例详解
2019/01/14 Python
Python面向对象程序设计之类的定义与继承简单示例
2019/03/18 Python
Django2.1.7 查询数据返回json格式的实现
2020/12/29 Python
意大利体育用品网上商城:Nencini Sport
2016/08/18 全球购物
大学生求职简历的自我评价范文
2013/10/12 职场文书
外贸学院会计专业应届生求职信
2013/11/14 职场文书
普师专业个人自荐信范文
2013/11/26 职场文书
办公室内勤工作职责
2013/12/11 职场文书
学历公证委托书
2014/04/09 职场文书
任命书怎么写
2014/06/04 职场文书
mybatis中注解与xml配置的对应关系和对比分析
2021/08/04 Java/Android