怎样判断上传图片的大小 在我的web(Java)程序中,上传文本文件(不是上传图片)都要判断用户上传文件的大小,如果没有限制,用户上传一个几G的,那网速要慢死,所以我进行判断,可以在后台判断,但是我感觉这样给用户带来的休验,我决定放到客户端用JavaScript作判断!所以在这里请高手指点下,怎么实现用JavaScript判断上传文件的大小?小弟非常急。。不胜感激!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 顶一个 对于web开发人员来说文件上传文件是经常遇到的,判断文件大小也是不可缺少,在这里主要介绍一下javascript判断文件大小的几种常见的方法。 第一种是应用ActiveX控件的实现,例如: Javascript代码 <script type="text/javascript"> function getFileSize(filePath) { var fso = new ActiveXObject("Scripting.FileSystemObject"); alert("文件大小为:"+fso.GetFile(filePath).size); } </script> <body> <INPUT TYPE="file" NAME="file" SIZE="30" onchange="getFileSize(this.value);"> </body> <script type="text/javascript">function getFileSize(filePath){ var fso = new ActiveXObject("Scripting.FileSystemObject"); alert("文件大小为:"+fso.GetFile(filePath).size);}</script><body><INPUT TYPE="file" NAME="file" SIZE="30" onchange="getFileSize(this.value);"></body>这种方法可以实现,也容易被开发人员想到,但是唯一不足之处是有安全提示,当然把文件名改为.hta则会屏蔽掉安全提示,但很难被需求所取。不推荐,也不多说 下面主要谈谈另一种方式,在html标签中有一个不为一般开发人员“深”知的img标签,先来说下他有的属性:src,dynsrc,start,alt,controls,loop,loopdelay,hspace,vspace....还有一些常用的属性就不列出来了,在这里我们说一下"dynsrc"这个属性:dynsrc可以用来插入各种多媒体,格式可以是Wav、Avi、AIFF、AU、MP3、Ra、Ram等等。url为音频或视频文件及其路径,可以是相对路径或绝对路径。 示例:<img dynsrc="xxxx.mp3"> 这样我们就可以根据dynsrc动态赋值任何类型文件的路径,在javascript中根据Image对象本身的fileSize属性来得到文件的大小。当然Image对象还有其他的几个属性,例如:fileCreatedDate、fileModifiedDate、fileSize、fileUpdatedDate、filters... , 代码如下: Javascript代码 <script type="text/javascript"> function getFileSize(filePath) { var image=new Image(); image.dynsrc=filePath; alert(image.fileSize); } </script> <body> <INPUT TYPE="file" NAME="file" SIZE="30" onchange="getFileSize(this.value)"> </body> <script type="text/javascript">function getFileSize(filePath){ var image=new Image(); image.dynsrc=filePath; alert(image.fileSize);}</script><body><INPUT TYPE="file" NAME="file" SIZE="30" onchange="getFileSize(this.value)"></body>文章出处:DIY部落(http://www.diybl.com/course/3_program/java/javashl/20090306/158631.html) <form name="form1"> <input type="file" name="file1" onchange="checkimage(value)"> </form> <script language="javascript"> var img=null; function checkimage(name){ if(/^.+\.(gif|jpg|png)$/i.test(name)) { if(img)img.removeNode(true); img=document.createElement("img"); img.style.position="absolute"; img.style.visibility="hidden"; img.attachEvent("onerror",oe); img.attachEvent("onreadystatechange",orsc); document.body.insertAdjacentElement("beforeend",img); img.src=name; } else{oe()} } function oe(){ form1.reset(); alert("文件类型只能是<gif><jpg><png>!"); } function orsc(){ if (img.fileSize>51200){ form1.reset(); alert("文件大小不能超过50K!"); } } </script> img只能用在上传图片的时候用吧,可是我是上传文件,不是图片,格式是doc、ppt、xls等等,之类的,我用了ActiveXObject,可是出错,错误:“Automation 服务器不能创建对象” 关于Servlet页面跳转的问题,急求解决!!! 实在是无计可施了,望高手指点 (SSH) java开发的网站集成邮件群发功能 【问题】做好的项目怎么打包呢? 问个关于dao层的问题~ 求一个关于记录日志的思路 java基于snmp的开发------急急急! TOMCAT加载servlet的时候为什么会加载2次 我要设计一个用户表,基本资料已经设计出来 在WebLogic 8.1中将Hibernate加入JNDI中的错误??? 关于strut2的token问题 在线死等:可恶的乱码问题(Spring+webwork+hibernate)
<script type="text/javascript">
function getFileSize(filePath)
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
alert("文件大小为:"+fso.GetFile(filePath).size);
}
</script>
<body> <INPUT TYPE="file" NAME="file" SIZE="30" onchange="getFileSize(this.value);">
</body>
<script type="text/javascript">
function getFileSize(filePath)
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
alert("文件大小为:"+fso.GetFile(filePath).size);
}
</script>
<body>
<INPUT TYPE="file" NAME="file" SIZE="30" onchange="getFileSize(this.value);">
</body>
这种方法可以实现,也容易被开发人员想到,但是唯一不足之处是有安全提示,当然把文件名改为.hta则会屏蔽掉安全提示,但很难被需求所取。不推荐,也不多说 下面主要谈谈另一种方式,在html标签中有一个不为一般开发人员“深”知的img标签,先来说下他有的属性:src,dynsrc,start,alt,controls,loop,loopdelay,hspace,vspace....还有一些常用的属性就不列出来了,在这里我们说一下"dynsrc"这个属性:dynsrc可以用来插入各种多媒体,格式可以是Wav、Avi、AIFF、AU、MP3、Ra、Ram等等。url为音频或视频文件及其路径,可以是相对路径或绝对路径。 示例:<img dynsrc="xxxx.mp3"> 这样我们就可以根据dynsrc动态赋值任何类型文件的路径,在javascript中根据Image对象本身的fileSize属性来得到文件的大小。当然Image对象还有其他的几个属性,例如:fileCreatedDate、fileModifiedDate、fileSize、fileUpdatedDate、filters... , 代码如下:
Javascript代码
<script type="text/javascript">
function getFileSize(filePath)
{
var image=new Image();
image.dynsrc=filePath;
alert(image.fileSize);
}
</script>
<body>
<INPUT TYPE="file" NAME="file" SIZE="30" onchange="getFileSize(this.value)">
</body>
<script type="text/javascript">
function getFileSize(filePath)
{
var image=new Image();
image.dynsrc=filePath;
alert(image.fileSize);
}
</script>
<body>
<INPUT TYPE="file" NAME="file" SIZE="30" onchange="getFileSize(this.value)">
</body>
文章出处:DIY部落(http://www.diybl.com/course/3_program/java/javashl/20090306/158631.html)
<input type="file" name="file1" onchange="checkimage(value)">
</form>
<script language="javascript">
var img=null;
function checkimage(name){
if(/^.+\.(gif|jpg|png)$/i.test(name))
{
if(img)img.removeNode(true);
img=document.createElement("img");
img.style.position="absolute";
img.style.visibility="hidden";
img.attachEvent("onerror",oe);
img.attachEvent("onreadystatechange",orsc);
document.body.insertAdjacentElement("beforeend",img);
img.src=name;
}
else{oe()}
}
function oe(){
form1.reset();
alert("文件类型只能是<gif><jpg><png>!");
}
function orsc(){
if (img.fileSize>51200){
form1.reset();
alert("文件大小不能超过50K!");
}
}
</script>