- 浏览: 707583 次
- 来自: ...
文章分类
最新评论
-
ranguisheng:
可以加点注释,代码不便于阅读.
用java实现数据库连接池的一个简单示例 -
abcd880129:
这样写的话,还要用专门的下载工具,不然,只能下到一个为空的ex ...
ZK下载文件时,不在服务器生成文件直接下载 -
234369425:
同上,是20
java计算阶乘 -
CodeToMyLaw:
如果目录中含有中文呢?
[^\x00-\xff] 中文的 ...
js验证文件目录格式的正确性 -
yanzhoupuzhang:
加了,还是报那个错误!
org.apache.commons.dbcp.BasicDataSource的解决方法
需求分析:
在做上传图片的时候,如果不限制上传图片大小,后果非常的严重。那么我们怎样才可以解决一个棘手的问题呢?有两种方式:
1)后台处理: 也就是AJAX POST提交到后台,把图片上传到服务器上,然后获得该图片大小做处理。
2)前台处理: 也就是利用Javascript获取该图片大小。
显然第一种方式,很不好。因为需要把文件先上传到服务器上,如果文件很大的话,在加上网不是很快,需要等待好长时间,治标不治本。
功能解析:
在这里我只介绍IE与FireFox两个浏览器的不同做法。
IE6:
关键字: fileSize onreadystatechange complete
在IE6中可以通过Img对象的fileSize 属性获得文件大小,但这个fileSize属性的正确值是建立在onreadystatechange 事件的complete 中,也就是
FireFox3.0:
关键字: getAsDataURL() fileSize
在FireFox中处于安全的考虑,无法获得上传图片的完整路径,只能获得图片名称。但浏览器提供nsIDOMFile這樣一個接口,所以需要通过getAsDataURL()获得处理过后的路径,但该路径不影响图片src显示。
nsIDOMFile接口:
DOMString getAsBinary();
DOMString getAsDataURL();
DOMString getAsText(in DOMString encoding);
以上是两个不同浏览器的处理方式,那么怎么把他们融和到一起呢?我在下面会将我做的小例子贴出来,其中里面我使用JQuery,方便与获取对象
在做上传图片的时候,如果不限制上传图片大小,后果非常的严重。那么我们怎样才可以解决一个棘手的问题呢?有两种方式:
1)后台处理: 也就是AJAX POST提交到后台,把图片上传到服务器上,然后获得该图片大小做处理。
2)前台处理: 也就是利用Javascript获取该图片大小。
显然第一种方式,很不好。因为需要把文件先上传到服务器上,如果文件很大的话,在加上网不是很快,需要等待好长时间,治标不治本。
功能解析:
在这里我只介绍IE与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); } }
FireFox3.0:
关键字: getAsDataURL() fileSize
在FireFox中处于安全的考虑,无法获得上传图片的完整路径,只能获得图片名称。但浏览器提供nsIDOMFile這樣一個接口,所以需要通过getAsDataURL()获得处理过后的路径,但该路径不影响图片src显示。
nsIDOMFile接口:
DOMString getAsBinary();
DOMString getAsDataURL();
DOMString getAsText(in DOMString encoding);
<input type="file" name="uploadImg" onchange="Javascript:checkFileChange(this);" size="12"/> function checkFileChange(obj) { var img = document.getElementById("img"); img.src = obj.files[0].getAsDataUrl(); alert(obj.files[0].fileSize); }
以上是两个不同浏览器的处理方式,那么怎么把他们融和到一起呢?我在下面会将我做的小例子贴出来,其中里面我使用JQuery,方便与获取对象
<!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; /** * Input file onchange事件 * @params obj file对象 * @return void **/ 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; } } /** * 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"); 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; } } } /** * updateTips 注册错误信息显示 * @params str 显示内容 * @return void **/ function updateTips(str) { $("p#errorTips").text(str); } /** * commit 注册提交 * @return void **/ 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(); } } /** * errorImg 图片错误显示 * @params img 图片对象 * @return void **/ 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" alt="头像" 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>
发表评论
-
Javascript刷新页面的实例
2017-10-02 16:49 493Javascript刷新页面的实例 Javascript刷 ... -
一份老外写的XMLHttpRequest代码多浏览器支持兼容性
2017-12-29 17:25 439/* Cross-Browser XMLHtt ... -
漂亮的Slider效果类终于封装成功
2015-04-16 20:38 0<!DOCTYPE html PUBLIC &quo ... -
用简单的脚本实现一款漂亮的下拉菜单
2015-04-16 20:33 0<!DOCTYPE html PUBLIC &quo ... -
Javascript操纵Cookie实现购物车程序
2015-04-16 20:31 0/************************** ... -
推荐:右键菜单
2015-04-16 20:30 0<!-- +++++++++++++++++++++ ... -
拖动层效果
2015-04-16 20:28 581<!DOCTYPE html PUBLIC &q ... -
发个自己写的表格操作类(添加,删除,排序,上移,下移)
2015-04-16 20:26 448<html> <head> ... -
cloneNode实现表格增加删除效果
2015-04-16 20:23 676<%@ page contentType= ... -
支持IE和FF的div+css选项卡
2015-04-16 20:22 526<!DOCTYPE html PUBLIC &quo ... -
一个分页的js
2015-04-16 20:20 483<!-- * 用js分页显示ul/ol的列表 ... -
JavaScript实现拖拽网页内元素的方法
2015-04-15 22:30 536/** * 跨平台的事件监听函数 * @param ... -
让IE浏览器支持HTML5标准的方法
2014-01-11 08:30 1021让IE浏览器支持HTML5标准 ... -
Javascript上传图片
2014-01-11 08:25 2493<!DOCTYPE html PUBLIC &quo ... -
javascript ajax
2013-07-21 20:51 970<!DOCTYPE html PUBLIC &quo ... -
javascript表格和表单
2013-07-13 23:06 921<html> <head> & ... -
javascript事件
2013-07-07 20:53 937<!DOCTYPE html PUBLIC &quo ... -
javascript基础
2013-07-06 22:47 1106<!DOCTYPE html PUBLIC &quo ... -
带Checkbox的列表框
2011-11-26 14:31 939<title>带Checkbox的列表框 ... -
判断Checkbox和Radio的一种方法
2011-11-26 14:25 930<title>判断Checkbox和 ...
相关推荐
在进行图片上传功能时,确保图片大小的验证是非常重要的安全措施。这有助于防止用户上传过大的文件,从而避免服务器资源的过度消耗,提高网站性能,以及优化用户体验。本文主要讨论了两种图片大小验证方法:后台处理...
标题"php文件上传大小客户端判断"指的是在客户端(通常是用户浏览器)对文件上传大小进行预判,而不是依赖服务器端的PHP配置。这样可以提前过滤掉超出限制的文件,减轻服务器的负担。 描述中提到的方法,是通过...
这个项目是用PHP、Ajax和JavaScript这三种技术实现的,允许用户上传图片并即时预览,同时还可以调整显示的图片大小。接下来,我们将深入探讨这些技术以及它们在实现此功能中的角色。 **PHP** 是一种广泛使用的...
1. **JavaScript验证**:通过编写JavaScript函数,可以在用户选择文件后立即检查文件的大小和扩展名。例如,可以使用`<asp:RegularExpressionValidator>`控件配合正则表达式限制上传的文件类型,或者使用JavaScript...
使用 JavaScript,可以实现在客户端验证图片的上传格式、大小等信息,从而减少服务器的负载。此外,JavaScript 也可以用于实现上传图片的进度条、上传按钮等交互式功能。 HTML、CSS 和 JavaScript 的结合使用是实现...
后台处理指的是服务器端在图片上传后进行大小的检查,而前台处理则是在图片上传到服务器之前,通过客户端的JavaScript代码对图片大小进行验证。 首先,前台处理有其显著的优势,主要表现在用户体验上。如果上传的...
标题中的“javascript 客户端验证上传图片的大小(兼容IE和火狐)”涉及到的知识点是使用JavaScript在用户端(客户端)进行图片文件的上传前验证,主要目的是确保图片大小符合服务器接受的限制,同时该方法需要兼容...
本文将深入探讨如何使用JavaScript来实现这一功能,通过前端验证,防止大文件上传导致的网络延迟或者服务器压力。 一、JavaScript简介 JavaScript是一种广泛使用的轻量级编程语言,主要应用于Web浏览器,用于实现...
总结来说,JavaScript验证上传文件大小主要通过监听文件输入字段的`change`事件,获取文件对象,然后检查`size`属性。结合HTML和CSS,我们可以创建一个交互式的文件上传界面,提供友好的用户反馈。这个功能对于任何...
FileSystemObject对象,GetFileSize(…)可直接取得待上传文件的字节大小,但也有限制就是客户端浏览须启用ActiveX插件,若没有启用时,会提示用户按步骤设置。CancelClientEvent()是使用事件冒泡阻止了事件的继续...
为防止恶意文件上传,服务器需要验证文件类型、大小,甚至进行病毒扫描。此外,考虑到服务器的存储资源,可以设置合理的文件大小限制,并且及时清理未使用的临时文件。为了提高性能,可以采用多线程处理文件,或者...
### 通过客户端验证上传图片文件大小的ASP:知识点解析 #### 一、ASP与客户端验证的概念 1. **ASP(Active Server Pages)**:是一种服务器端脚本环境,用于创建和运行动态、交互式 Web 应用程序。在 ASP 中,可以...
无刷新上传图片是一种提高用户体验的技术,它通过JavaScript和Ajax实现,让用户在不离开当前页面的情况下完成文件上传。这种技术在现代网页应用中广泛使用,因为它能够保持页面的流畅性,减少用户等待时间,并且使...
在这个主题中,我们将深入探讨这两个工具以及它们如何配合进行验证和JavaScript验证。 **eWebEditor** 是一款基于JavaScript的在线HTML编辑器,它允许用户在Web页面上实现类似Word的编辑体验。通过提供一系列富文本...
在网页开发中,用户可能需要上传各种文件,如图片、文档等。为了提供良好的用户体验并保护服务器资源,通常需要对可上传的文件大小进行限制。本文将深入探讨如何使用JavaScript来实现这一功能,同时也会涉及一些相关...
综上所述,"JS判断并预览客户端上传图片"这一技术涉及到对用户上传图片的格式、大小进行验证,并提供实时预览的功能,以确保上传的图片符合规定,提高用户体验。在实际应用中,还可能需要考虑错误提示、多图上传、...