问题:判断文档上传大小(非图片格式)(大于1MB限制上传)
遇到的问题:
1.JS实现
首先<form>表单中<input type="file" name="file" id="file" onchange="fileup(this.id)"/> onchange事件绑定;
在<script type="text/javascript"></script>中定义一个上传最大值var flength=1024;
fso=new ActiveXObject("Scripting.FileSystemObject");
f=fso.GetFile(filename);
fsize=f.Size;
fsize=fsize/1024; 然后if(fsize>flength)判定大小;
遇到问题,需要考虑到“ActiveX控件进行初始化和脚本运行”IE浏览器都是默认设置为“禁用”(需要用户自己修改,不可行),同时火狐浏览器和谷歌浏览器onchange事件无响应,方法不可行。
<form action="@{Application.fileupdate()}" method="POST" enctype="multipart/form-data">
<input name="username" value="${flash.name}" type="text"/><br/>
<input type="file" name="file" id="file" onchange="fileup(this.id)"/>
<input type="submit" value="提交"/>
</form> function fileup(x){
var filename=document.all.file.value;
alert(filename);
var fso,f,fname,fsize;
var flength=1024; //设置上传的文件最大值(单位:kb),超过此值则不上传。
fso=new ActiveXObject("Scripting.FileSystemObject");
f=fso.GetFile(filename);//文件的物理路径
fname=fso.GetFileName(filename);//文件名(包括扩展名)
fsize=f.Size; //文件大小(bit)
fsize=fsize/1024;
if(fsize>flength){
alert("太大了");
return false;
}
alert("好了");
return true;
}
2.通过<form>表单全部提交 submit全部数据(患者姓名、会诊类型、会诊医生、病情摘要、上传病历等),在后台接受 上传file文件大小以后进行判断,然后超出大小返回“申请会诊”界面,这时候所有刚才填写很多的文字还得重新再次输入一遍,怎么才能让他记住之前的输入不清空,回来只再次上传病历即可
3.希望有更好的方法来解决这个问题
遇到的问题:
1.JS实现
首先<form>表单中<input type="file" name="file" id="file" onchange="fileup(this.id)"/> onchange事件绑定;
在<script type="text/javascript"></script>中定义一个上传最大值var flength=1024;
fso=new ActiveXObject("Scripting.FileSystemObject");
f=fso.GetFile(filename);
fsize=f.Size;
fsize=fsize/1024; 然后if(fsize>flength)判定大小;
遇到问题,需要考虑到“ActiveX控件进行初始化和脚本运行”IE浏览器都是默认设置为“禁用”(需要用户自己修改,不可行),同时火狐浏览器和谷歌浏览器onchange事件无响应,方法不可行。
<form action="@{Application.fileupdate()}" method="POST" enctype="multipart/form-data">
<input name="username" value="${flash.name}" type="text"/><br/>
<input type="file" name="file" id="file" onchange="fileup(this.id)"/>
<input type="submit" value="提交"/>
</form> function fileup(x){
var filename=document.all.file.value;
alert(filename);
var fso,f,fname,fsize;
var flength=1024; //设置上传的文件最大值(单位:kb),超过此值则不上传。
fso=new ActiveXObject("Scripting.FileSystemObject");
f=fso.GetFile(filename);//文件的物理路径
fname=fso.GetFileName(filename);//文件名(包括扩展名)
fsize=f.Size; //文件大小(bit)
fsize=fsize/1024;
if(fsize>flength){
alert("太大了");
return false;
}
alert("好了");
return true;
}
2.通过<form>表单全部提交 submit全部数据(患者姓名、会诊类型、会诊医生、病情摘要、上传病历等),在后台接受 上传file文件大小以后进行判断,然后超出大小返回“申请会诊”界面,这时候所有刚才填写很多的文字还得重新再次输入一遍,怎么才能让他记住之前的输入不清空,回来只再次上传病历即可
3.希望有更好的方法来解决这个问题
mehtod2、把填的内容,和上传的内容分为两个页面,两部完成。
另外struts也可以实现文件上传大小限制