struts2文件上传问题

上传表单页面的要求:

第一个要求:表单提交方式 post

第二个要求:form标签里面有属性 enctype属性值 修改为 multipart/form-data

第三个要求:在表单里面有文件上传项,有name属性 <input type= “file” name=“”/>

 

在action直接得到上传文件名称和上传文件

- 在action定义成员变量,生成变量set和get方法:

 1 private File upload;
 2     private String uploadFileName;
 3     public File getUpload() {
 4         return upload;
 5     }
 6     public void setUpload(File upload) {
 7         this.upload = upload;
 8     }
 9     public String getUploadFileName() {
10         return uploadFileName;
11     }
12     public void setUploadFileName(String uploadFileName) {
13         this.uploadFileName = uploadFileName;
14     }

 

在具体的action的方法里面写上传逻辑

- 在服务器里面创建文件

- 把本地文件复制到服务器文件里面

1 if(upload != null){
2             //在服务器文件夹里面创建文件
3             File serverFile = new File("F:\\sshimg"+"/"+uploadFileName);
4             //把文件上传复制到服务器里面
5             FileUtils.copyFile(upload, serverFile);
6         }

问题:

如果上传文件超过2M,出现异常

(1)使用struts2做文件上传文件大小默认有限制的,默认 2M

(2)可以设置上传文件大小

- struts2里面有常量

1 <constant name="struts.multipart.maxSize" value="209715200"></constant>

 input是struts2里面错误处理机制,如果上传文件超过设置的大小之后,自动返回结果,结果名称是 input

- 解决:配置input结果,到错误页面、

1 <result name="input">/jsp/error.jsp</result>

 

posted @ 2017-04-23 10:31  崔布斯  阅读(190)  评论(0编辑  收藏  举报