永发信息网

求JS获取图片大小和尺寸的代码

答案:3  悬赏:0  手机版
解决时间 2021-04-25 00:29

如题 要兼容IE 和FF 的

获取图片尺寸 我要进行判断, 如果比规定的小 ,则显示图片本身大小.如果大,则显示规定大小

最佳答案
var flag=false;
function sImage(ImgS){
var image=new Image();
image.src=ImgS.src;
if(image.width>0 && image.height>0){
flag=true;
if(image.width/image.height>= 173/173){
if(image.width>173){
ImgS.width=173;
ImgS.height=(image.height*173)/image.width;
}else{
ImgS.width=image.width;
ImgS.height=image.height;
}
//ImgS.+image.width+"×"+image.height;
}
else{
if(image.height>173){
ImgS.height=173;
ImgS.width=(image.width*173)/image.height;
}else{
ImgS.width=image.width;
ImgS.height=image.height;
}
//ImgS.×"+image.height;
}
}
}
全部回答

JQ版 支持全球所有浏览器

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns=" http://www.w3.org/1999/xhtml" xml:lang="zh" lang="zh" dir="ltr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="lib/jquery-1.3.2.min.js" ></script> <title>检查上传图片大小</title> <style type="text/css"> .img {width:136px;height:102px;} .imgError{border:3px solid red;} </style> <script type="text/javascript"> //限制上传图片大小100K var MAXSIZE = 100 * 1024; //图片大小限制信息 var ERROR_IMGSIZE = "图片大小不能超过100K"; //默认图片 var NOPHOTO = "imgs/nophoto.gif"; //图片是否合格 var isImg = true; function checkFileChange(obj) { //初始化设置 $(".imgTable").removeClass("imgError"); updateTips(""); var img = $(".img").get(0); var file = obj.value; var exp = /.\.jpg|.\.gif|.\.png|.\.bmp/i; if (exp.test(file)) {//验证格式 if($.browser.msie) {//判断是否是IE img.src = file; } else { img.src = obj.files[0].getAsDataURL(); sizeCheck(img); } } else { img.src = NOPHOTO; $(".imgTable").addClass("imgError"); updateTips("图片格式不正确"); isImg = false; } } function sizeCheck(img) { //初始化设置 $(".imgTable").removeClass("imgError"); updateTips(""); if ($.browser.msie) {//查看是否是IE if(img.readyState == "complete") { if (img.fileSize > MAXSIZE) { $(".imgTable").addClass("imgError"); updateTips(ERROR_IMGSIZE); isImg = false; }else { isImg = true; } }else { $(".imgTable").addClass("imgError"); updateTips(ERROR_IMGSIZE); isImg = false; } } else { var file = $("input:file[name='uploadImg']")[0]; if (file.files[0].fileSize > MAXSIZE) { $(".imgTable").addClass("imgError"); updateTips(ERROR_IMGSIZE); isImg = false; }else { isImg = true; } } } function updateTips(str) { $("p#errorTips").text(str); } function commit() { var isCommit = true; var usrname = $("input:text[name='usrname']"), email = $("input:text[name='email']"), img = $(".img"), file = $("input:file[name='uploadImg']"), frm = document.frm; isCommit = isCommit && isImg; if(isCommit) { frm.action = "about:blank"; frm.submit(); } } function errorImg(img) { img.src = NOPHOTO; } </script> </head> <body> <form name="frm" method="post"> <p id="errorTips"> </p> <table cellpadding="1" cellspacing="0" width="350px" border="1"> <tr> <td><label>姓名:</label></td> <td><input type="text" name="usrname" maxlength="50"/></td> </tr> <tr> <td><label>性别:</label></td> <td><input type="radio" name="sex" value="0"/>男<input type="radio" name="sex" value="0"/>女</td> </tr> <tr> <td><label>邮件:</label></td> <td><input type="text" name="email" maxlength="100"/></td> </tr> <tr> <td><lable>图像</label></td> <td> <table cellpadding="0" cellspacing="0" class="imgTable"> <tr> <td><img src="imgs/nophoto.gif" src="imgs/nophoto.gif" class="img" onerror="Javascript:errorImg(this);" onreadystatechange="Javascript:sizeCheck(this);"/> </td> </tr> <tr> <td><input type="file" name="uploadImg" onchange="Javascript:checkFileChange(this);" size="12"/></td> </tr> </table> </td> </tr> <tr> <td colspan="2"><a href="Javascript:commit();" href="Javascript:commit();">注册</a></td> </tr> </table> </form> </body> </html>

本文来自: 中国百宝箱 www.cnbbx.com

获得文件大小大概有两种解决方法: (一)使用document.getElementById或者document.createElement的或者var img=new Image(); 然后在onreadystatechange事件里检查大小 但这种代码通用性不强浏览器兼容存在问题一直无法解决 (二)使用FSO控件,但这样存在安全问题 <div id="photoyn"><input id="file1" type="file" onchange="ShowSize(this.value)" /> <script type="text/javascript"> function ShowSize(files){ var fso,f; fso=new ActiveXObject("Scripting.FileSystemObject"); f=fso.GetFile(files); var mySize = f.size/1024; alert(mySize+" K "); var myName = f.Name; var myPath = f.Path; var myDrive = f.Drive; var myType = f.type; var myAttributes = f.Attributes; var myDateCreated = f.DateCreated; } </script> 所以说要在客户端检测文件大小没有实现方法。 最终解决方案还是在服务器端检测,在上传的过程中,在服务器的内存中进行判断并返回信息给客户端。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
谁可以帮我玩一下我的漫游
Q空间的养花的爱心指数和其它怎么增加?
零售业态与零售业种有什么区别?
求世博二日游 7号门入园的最佳路线
对迎宾员这份职业应持怎样的态度?
本人14岁95年3月!身高一米七!四肢匀称、肌
求Hebe的《离岛》《我想我不会爱你》的mp3下
我们很爱彼此,但遭到双方父母的反对.我们怎么
有没有伤感的QQ头像?急急急!!!!
怎么去除花盆里的蚂蚁,花盆里长了好多黑色小
怎样绣的眉好看呢!
腾迅手机搜搜问题
幻世悠游的全集
玉龙新村我想知道这个在什么地方
学画漫画从哪儿开始啊?
推荐资讯
帮朋友邀请QQ餐厅
三国要多少级点亮呀
金正恩孩子叫什么,为什么金正恩即位
极道鲜师上的 小田切君是谁啊? 蛮帅的。
QQ飞车帝王怎么改好?
高分!打篮球腰受伤了
关于母爱的谚语大全,关于母爱夏天的句子大全
他们结婚了么
忘记密保了,怎么样才可以改密码
fifaonline游戏中怎么样将休假球员恢复
电脑音箱突然没声音了
应该支持巴萨队还是北京国安队
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?