
展开全部
我也刚遇到这个问题,其实解决的方法不止一个的,我的方法是在处理上传的Action中得到文件后使用file.length();方法判断文件的大小,如果小于规定大小,就执行上传任务,否则就返回到错误页面。
附示例代码:
public class UploadAction extends ActionSupport {
private List<File> files;//上传的文件集合
private List<String> filesFileName;//文件名称集合
private List<String> filesContentType;//文件类型集合
private String savePath;
public String execute()throws Exception{
for(int i=0;i<files.size();i++){
//如果有文件大小大于10M,返回错误页面
if(files.get(i).length()>10485760){
this.getRequest().put("msg", "对不起,你上传的文件大于10M,不能上传。<ahref='upload.jsp'>重新上传</a>");
return “error";
}
}
//循环读取并上传文件
for(int i = 0; i < files.size(); i++){
System.out.println(filesFileName.get(i));
//写入流
FileOutputStream fos=new FileOutputStream(getSavePath()+"\\"+filesFileName.get(i));
//建立上传流
FileInputStream fis=new FileInputStream(files.get(i));
//写入服务器
byte[] buffer=new byte[1024];
int len=0;
while((len=fis.read(buffer))>0){
fos.write(buffer,0,len);
}
this.getRequest().put("upload", this);
}
this.getRequest().put("msg", "文件上传成功!");
return "success";
}
public String getSavePath() {
return ServletActionContext.getRequest().getRealPath(savePath);
}
public void setSavePath(String savePath) {
this.savePath = savePath;
}
public Map<String,Object> getRequest(){
return (Map)ActionContext.getContext().get("request");
}
//其他getter setter方法略
}
另外,创建一个拦截器也可以实现
附示例代码:
public class UploadAction extends ActionSupport {
private List<File> files;//上传的文件集合
private List<String> filesFileName;//文件名称集合
private List<String> filesContentType;//文件类型集合
private String savePath;
public String execute()throws Exception{
for(int i=0;i<files.size();i++){
//如果有文件大小大于10M,返回错误页面
if(files.get(i).length()>10485760){
this.getRequest().put("msg", "对不起,你上传的文件大于10M,不能上传。<ahref='upload.jsp'>重新上传</a>");
return “error";
}
}
//循环读取并上传文件
for(int i = 0; i < files.size(); i++){
System.out.println(filesFileName.get(i));
//写入流
FileOutputStream fos=new FileOutputStream(getSavePath()+"\\"+filesFileName.get(i));
//建立上传流
FileInputStream fis=new FileInputStream(files.get(i));
//写入服务器
byte[] buffer=new byte[1024];
int len=0;
while((len=fis.read(buffer))>0){
fos.write(buffer,0,len);
}
this.getRequest().put("upload", this);
}
this.getRequest().put("msg", "文件上传成功!");
return "success";
}
public String getSavePath() {
return ServletActionContext.getRequest().getRealPath(savePath);
}
public void setSavePath(String savePath) {
this.savePath = savePath;
}
public Map<String,Object> getRequest(){
return (Map)ActionContext.getContext().get("request");
}
//其他getter setter方法略
}
另外,创建一个拦截器也可以实现
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询