Javascript验证上传图片大小[前台处理]__第1页
Javascript验证上传图片大小[前台处理]__第2页
Javascript验证上传图片大小[前台处理]__第3页
Javascript验证上传图片大小[前台处理]__第4页
Javascript验证上传图片大小[前台处理]__第5页
免费预览已结束,剩余6页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Javascript验证上传图片大小前台处理_ 在做上传图片的时候,假如不限制上传图片大小,后果特别的严峻。解决这个问题有两种方式:后台处理、前台处理。 需求分析: 在做上传图片的时候,假如不限制上传图片大小,后果特别的严峻。那么我们怎样才可以解决一个麻烦的问题呢?有两种方式: 1)后台处理: 也就是AJAX POST提交到后台,把图片上传到服务器上,然后获得该图片大小做处理。 2)前台处理: 也就是利用Javascript猎取该图片大小。 明显第一种方式,很不好。由于需要把文件先上传到服务器上,假如文件很大的话,在加上网不是很快,需要等待好长时间,治标不治本。 功能解析: 在这里我只介绍IE

2、与FireFox两个扫瞄器的不同做法。 IE6: 关键字: fileSize onreadystatechange complete 在IE6中可以通过Img对象的fileSize 属性获得文件大小,但这个fileSize属性的正确值是建立在onreadystatechange 大事的complete 中,也就是 img src= class=img onreadystatechange=Javascript:sizeCheck(this); function sizeCheck(img) if(img.readyState = complete) alert(img.fileSize); F

3、ireFox3.0: 关键字: getAsDataURL() fileSize 在FireFox中处于平安的考虑,无法获得上传图片的完整路径,只能获得图片名称。但扫瞄器供应nsIDOMFile這樣一個接口,所以需要通过getAsDataURL()获得处理过后的路径,但该路径不影响图片src显示。 nsIDOMFile接口: DOMString getAsBinary(); DOMString getAsDataURL(); DOMString getAsText(in DOMString encoding); input type=file name=uploadImg onchange=Ja

4、vascript:checkFileChange(this); size=12/ function checkFileChange(obj) var img = document.getElementById(img); img.src = obj.files0.getAsDataUrl(); alert(obj.files0.fileSize); 以上是两个不同扫瞄器的处理方式,那么怎么把他们融和到一起呢?我在下面会将我做的小例子贴出来,其中里面我用法JQuery,便利与猎取对象 !DOCTYPE html PUBLIC -/W3C/DTD XHTML 1.0 Transitional/EN

5、 l1/DTD/xhtml1-transitional.dtd html xmlns=l 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; .imgErrorborder:3px sol

6、id red; /style script type=text/javascript /限制上传图片大小100K var MAXSIZE = 100 * 1024; /图片大小限制信息 var ERROR_IMGSIZE = 图片大小不能超过100K; /默认图片 var NOPHOTO = imgs/nophoto.gif; /图片是否合格 var isImg = true; /* * Input file onchange大事 * params obj file对象 * return void */ function checkFileChange(obj) /初始化设置 $(.imgTa

7、ble).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.files0.getAsDataURL(); sizeCheck(img); else img.src = NOPHOTO; $(.imgTable).addClass(img

8、Error); updateTips(图片格式不正确); isImg = false; /* * sizeCheck 检查图片大小 * params img 图片对象 * return void */ function sizeCheck(img) /初始化设置 $(.imgTable).removeClass(imgError); updateTips(); if ($.browser.msie) /查看是否是IE if(img.readyState = complete) if (img.fileSize MAXSIZE) $(.imgTable).addClass(imgError);

9、updateTips(ERROR_IMGSIZE); isImg = false; else isImg = true; else $(.imgTable).addClass(imgError); updateTips(ERROR_IMGSIZE); isImg = false; else var file = $(input:filename=uploadImg)0; if (file.files0.fileSize MAXSIZE) $(.imgTable).addClass(imgError); updateTips(ERROR_IMGSIZE); isImg = false; else

10、 isImg = true; /* * updateTips 注册错误信息显示 * params str 显示内容 * return void */ function updateTips(str) $(p#errorTips).text(str); /* * commit 注册提交 * return void */ function commit() var isCommit = true; var usrname = $(input:textname=usrname), email = $(input:textname=email), img = $(.img), file = $(inp

11、ut:filename=uploadImg), frm = document.frm; isCommit = isCommit isImg; if(isCommit) frm.action = about:blank; frm.submit(); /* * errorImg 图片错误显示 * params img 图片对象 * return void */ function errorImg(img) img.src = NOPHOTO; /script /head body form name=frm method=post p id=errorTips /p table cellpaddi

12、ng=1 cellspacing=0 width=350px border=1 tr tdlabel姓名:/label/td tdinput type=text name=usrname maxlength=50/td /tr tr tdlabel性别:/label/td tdinput type=radio name=sex value=0/男input type=radio name=sex value=0/女/td /tr tr tdlabel邮件:/label/td tdinput type=text name=email maxlength=100/td /tr tr tdlable

13、图像/label/td td table cellpadding=0 cellspacing=0 class=imgTable tr tdimg src=imgs/nophoto.gif src=imgs/nophoto.gif class=img alt=头像 onerror=Javascript:errorImg(this); onreadystatechange=Javascript:sizeCheck(this);/ /td /tr tr tdinput type=file name=uploadImg onchange=Javascript:checkFileChange(this); size=12/td /tr /table /td /tr tr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论