您好,能向你请教一下关于用Struts2进行上传视频提示文件过大的问题吗?我也遇见了你这样的问题

如题,谢谢啦!... 如题,谢谢啦! 展开
 我来答
月下梳璃
2011-05-07
知道答主
回答量:38
采纳率:0%
帮助的人:23.6万
展开全部
我也刚遇到这个问题,其实解决的方法不止一个的,我的方法是在处理上传的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方法略
}
另外,创建一个拦截器也可以实现
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式