html input type="file",关于input type="file" 上传图片,如何限制上传图片的分辨率...

在项目中,需要限制上传图片的分辨率,同时要兼容各浏览器(IE8及IE8以上,谷歌,火狐)。经过搜索和思考最终解决这个bug,记录下来,希望能帮助他人。

HTML代码:

CSS代码:

.conImage{

filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image); /* 该对象只用来在IE下获得图片的原始尺寸,无其它用途 */

height: 1px;

visibility:hidden;

overflow: hidden;

}

JS代码:

var width,height;

function handleConFiles(files){

if(navigator.userAgent.indexOf("MSIE 8.0")>0 navigator.userAgent.indexOf("MSIE 9.0")>0){

var objPreviewSizeFake = $(".conImage").get(0);//jquery对象转化为DOM对象

var fileupload = document.getElementById("head");

var $fileupload = $(fileupload);

$fileupload.select();

$fileupload.blur();

path = document.selection.createRange().text;

if (/"\w\W"/.test(path)) {

path = path.slice(1,-1);

}

objPreviewSizeFake.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = path;

width=objPreviewSizeFake.offsetWidth;

height=objPreviewSizeFake.offsetHeight;

if(width > 1024 || height > 120){

fill = false;

alert("上传图片的尺寸应在1024*120之间");

}

document.selection.empty();

}else{

for (var i = 0; i < files.length; i++) {

var file = files[i];

var reader = new FileReader();

var ret = [];

reader.onload = function(theFile) {

var image = new Image();

image.onload = function() {

width=this.width;

height=this.height;

if(width> 1024 || width> 120){

fill = false;

alert("头像尺寸应在1024x120之间");

}

};

image.src = theFile.target.result;

}

reader.readAsDataURL(file);

}

}

}

其中js部分可以根据自己的需求,可以增加参数,重新封装一下;也可以将分辨率的判断放在其他地方等等。

注:FileReader用于读取文件,属于HTML5。ie9及ie9以下不支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值