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 读书笔记索引贴
Jan 11 Javascript
javascript 获取所有id中包含某关键字的控件的实现代码
Nov 25 Javascript
Jquery 表格合并的问题分享
Sep 17 Javascript
鼠标悬浮显示二级菜单效果的jquery实现
Oct 29 Javascript
详解AngularJS中的filter过滤器用法
Jan 04 Javascript
使用JSON作为函数的参数的优缺点
Oct 27 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
Jun 26 Javascript
深入剖析Express cookie-parser中间件实现示例
Feb 01 Javascript
详解webpack-dev-server使用方法
Sep 14 Javascript
浅谈HTTP 缓存的那些事儿
Oct 17 Javascript
使用原生javascript开发计算器实例代码
Feb 21 Javascript
使用webpack和rollup打包组件库的方法
Feb 25 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接收POST数据方式
2015/06/05 PHP
PHP抽象类和接口用法实例详解
2019/07/20 PHP
在laravel中实现将查询的对象转换为多维数组的函数
2019/10/21 PHP
jquery 学习之二 属性 文本与值(text,val)
2010/11/25 Javascript
JS对select控件option选项的增删改查示例代码
2013/10/21 Javascript
javascript陷阱 一不小心你就中招了(字符运算)
2013/11/10 Javascript
jQuery动画与特效详解
2015/02/01 Javascript
在WordPress中加入Google搜索功能的简单步骤讲解
2016/01/04 Javascript
基于BootStrap的图片轮播效果展示实例代码
2016/05/23 Javascript
json的结构与遍历方法实例分析
2017/04/25 Javascript
ionic2懒加载配置详解
2017/09/01 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
2017/09/21 jQuery
axios进阶实践之利用最优雅的方式写ajax请求
2017/12/20 Javascript
Vue用v-for给src属性赋值的方法
2018/03/03 Javascript
webpack实现一个行内样式px转vw的loader示例
2018/09/13 Javascript
基于Vue 实现一个中规中矩loading组件
2019/04/03 Javascript
深度了解vue.js中hooks的相关知识
2019/06/14 Javascript
vant中的toast层级改变操作
2020/11/04 Javascript
微信小程序实现登录注册功能
2020/12/29 Javascript
vue监听键盘事件的相关总结
2021/01/29 Vue.js
[02:42]完美大师赛主赛事淘汰赛第三日观众采访
2017/11/25 DOTA
python实现数独算法实例
2015/06/09 Python
轻松实现python搭建微信公众平台
2016/02/16 Python
Python实现句子翻译功能
2017/11/14 Python
python导出chrome书签到markdown文件的实例代码
2017/12/27 Python
Python对List中的元素排序的方法
2018/04/01 Python
Python 为什么推荐蛇形命名法原因浅析
2020/06/18 Python
Python错误的处理方法
2020/06/23 Python
详解python爬取弹幕与数据分析
2020/11/14 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
2020/11/26 Python
Html5实现文件异步上传功能
2017/05/19 HTML / CSS
iframe与window.onload如何使用详解
2020/05/07 HTML / CSS
英国工艺品购物网站:Minerva Crafts
2018/01/29 全球购物
优质的学校老师推荐信
2013/10/28 职场文书
私人房屋买卖协议书
2014/10/04 职场文书
关于拾金不昧的感谢信(五篇)
2019/10/18 职场文书