关于判断文件大小的问题
<html>
<body bgcolor=#FFFBE7>
<center>
<form name="form1" action=process.asp method=post enctype="multipart/form-data">
<table border=1 width=70% style="margin-top:6em" >
<tr>
<td colspan=2 align=center>请贴上你的相片</td>
</tr>
<tr>
<td>相片文件名:</td><td><input type=file name=mefile></td>
</tr>
<tr>
<td align=center colspan=2><input type=submit value="发送"> <input type=reset value="取消"></td>
</tr>
</table>
</form>
</center>
</body>
</html>
我使用此界面给用户选择上传的文件,如何用javascript判断当前用户所选择的文件是否超出限定的大小(例如是20k),并且立即弹出提示框
问题点数:20、回复次数:6Top
1 楼huang_2(叽叽喳喳)回复于 2002-08-20 16:15:49 得分 0
我的要求就是在用户选择了文件之后就能立即判断文件是否超出限制大小,不能是提交之后Top
2 楼musclecn(大力水手)回复于 2002-08-20 16:19:28 得分 10
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<html>
<head>
<title>上传文件</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#f2f8ff" topmargin="0">
<!--#include FILE="upload.inc"-->
<script>
parent.document.forms[0].Submit.disabled=false;
parent.document.forms[0].Submit2.disabled=false;
</script>
<%
set upload=new upload_5xsoft
set file=upload.file("file1")
uploadsize=100
if file.filesize<100 then
response.write "<font size=2>请先选择你要上传的文件 [ <a href=# onclick=history.go(-1)>重新上传</a> ]</font>"
response.end
end if
if file.filesize>cint(uploadsize)*1000 then
response.write "<font size=2>文件大小超过了限制 "&uploadsize&"K [ <a href=# onclick=history.go(-1)>重新上传</a> ]</font>"
response.end
end if
fileExt=lcase(right(file.filename,4))
Forum_upload="rar,gif,jpg,bmp,zip,png,swf,doc"
uploadsuc=false
Forumupload=split(Forum_upload,",")
for i=0 to ubound(Forumupload)
if fileEXT="."&trim(Forumupload(i)) then
uploadsuc=true
exit for
else
uploadsuc=false
end if
next
if uploadsuc=false then
response.write "<font size=2>文件格式不正确 [ <a href=# onclick=history.go(-1)>重新上传</a> ]</font>"
response.end
end if
ranNum=int(90000*rnd)+10000
dd=formPath&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum&fileEXT
cc="upload\"&dd
if file.fileSize>0 then
file.saveAs Server.mappath(cc)
response.write "<font size=2>文件上传成功 </font>"
aa1= "upload/"&dd
response.write "<script>parent.frmAnnounce.Content.value='"&aa1&"'</script>"
set file=nothing
else
response.write "<br>文件太大超过限制!"
end if
set upload=nothing
%>
</body>
</html>Top
3 楼huang_2(叽叽喳喳)回复于 2002-08-20 16:29:44 得分 0
你好像是submit之后才判断的Top
4 楼meizz(梅花雪)回复于 2002-08-20 16:40:50 得分 0
function ShowFolderSize(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFolder(filespec);
s = f.Name + " uses " + f.size + " bytes.";
return(s);
}
Top
5 楼huang_2(叽叽喳喳)回复于 2002-08-20 17:33:32 得分 0
上面这个函数怎么应用到我的例子?Top
6 楼qiushuiwuhen(秋水无恨)回复于 2002-08-22 10:03:05 得分 10
<html>
<body bgcolor=#FFFBE7>
<center>
<form name="form1" action=process.asp method=post enctype="multipart/form-data" onsubmit="return check()">
<table border=1 width=70% style="margin-top:6em" >
<tr>
<td colspan=2 align=center>请贴上你的相片(<20kb)</td>
</tr>
<tr>
<td>相片文件名:</td><td><input type=file name=mefile></td>
</tr>
<tr>
<td align=center colspan=2><input type=submit value="发送"> <input type=reset value="取消"></td>
</tr>
</table>
</form>
</center>
</body>
<script>
var fso;
function check(){
var errMsg,filespec=document.all.mefile.value;
if(filespec==""){alert("请选择文件,谢谢");return false;}
errMsg="你禁止了FSO,请刷新页面,谢谢";
try{
if(fso==null){
alert("请允许启用FSO检查文件大小,谢谢");
fso= new ActiveXObject("Scripting.FileSystemObject");
}
errMsg="文件过大,请重新选择,谢谢";
if(fso.GetFile(filespec).size<20*1024)return true;
}catch(e){}
alert(errMsg);return false;
}
</script>
</html>
Top




