1. struts2中的文件上传
第一步:在WEB=INF/lib下加入commons-fileupload-1.2.1.jar commons-io-1.3.2.jar

第二步:把form表单的enctype属性设置为"multipart/form-data",如
 
Java代码
1. <form action="${tPath}/control/employee/list_execute.action" enctype="multipart/form-data" method="post">   
2.     文件:<input type="file" name="image">   
3.     <input type="submit" value="上传"/>   
4.   </form>   
5.   //${tPath}:获取服务器根路径 
  <form action="${tPath}/control/employee/list_execute.action" enctype="multipart/form-data" method="post">
        文件:<input type="file" name="image">
        <input type="submit" value="上传"/>
    </form>
    //${tPath}:获取服务器根路径
   
第三步:在action中添加一下属性,
Java代码
1. public class HelloWorldAction {   
2.     private File image;           //jsp表单中的名称对应   
3.     private String imageFileName; //FileName为固定格式   
4.     private String imageContentType ;//ContentType为固定格式   
5.        
6.     public String getImageContentType() {   
7.         return imageContentType;   
8.     }   
9.     public void setImageContentType(String imageContentType) {   
10.         this.imageContentType = imageContentType;   
11.     }   
12.     public String getImageFileName() {   
13.         return imageFileName;   
14.     }   
15.     public void setImageFileName(String imageFileName) {   
16.         this.imageFileName = imageFileName;   
17.     }   
18.     public File getImage() {   
19.         return image;   
20.     }   
21.     public void setImage(File image) {   
22.         this.image = image;   
23.     }   
24.     public String execute() throws Exception{   
25. System.out.println("imageFileName = "+imageFileName);     
26. System.out.println("imageContentType = "+imageContentType);   
27.         //获取服务器的根路径realpath   
28.         String realpath =&ServletContext().getRealPath("/images");   
29. System.out.println(realpath);   
30.         if(image!=null){   
31.             File savefile = new File(new File(realpath), imageFileName);   
32.             if(!ParentFile().exists())&ParentFile().mkdirs();   
33.             pyFile(image, savefile);   
34.             Context().put("message", "上传成功");   
35.         }else{   
36.             Context().put("message", "上传失败");   
37.         }   
38. getsavefilename        return "success";   
39.     }   
40.
public class HelloWorldAction {
    private File image;          //jsp表单中的名称对应
    private String imageFileName; //FileName为固定格式
    private String imageContentType ;//ContentType为固定格式
   
    public String getImageContentType() {
        return imageContentType;
    }
    public void setImageContentType(String imageContentType) {
        this.imageContentType = imageContentType;
    }
    public String getImageFileName() {
        return imageFileName;
    }
    public void setImageFileName(String imageFileName) {
        this.imageFileName = imageFileName;
    }
    public File getImage() {
        return image;
    }
    public void setImage(File image) {
        this.image = image;
    }
    public String execute() throws Exception{
System.out.println("imageFileName = "+imageFileName);   
System.out.println("imageContentType = "+imageContentType);
        //获取服务器的根路径realpath
        String realpath = ServletContext().getRealPath("/images");
System.out.println(realpath);
        if(image!=null){
            File savefile = new File(new File(realpath), imageFileName);
            if(!ParentFile().exists()) ParentFile().mkdirs();
            pyFile(image, savefile);
            Context().put("message", "上传成功");
        }else{
            Context().put("message", "上传失败");
        }
        return "success";
    }
}
 
此外,可以在l中配置上传文件的大小
    <constant name="struts.multipart.maxSize" value="10701096"/> //最大上传配置成10M
    默认的上传大小为2M

思维拓展:如果要上传的文件非常大,如上传的是电影,好几百M ,用web上传一般是不可能难上传成功的,这时候要安装一个插件,类似于应用程序
          socket ,通过网络通讯上传。

2 . 多文件上传
    在上面的基础上略加改动
    1.jsp表单
 
Java代码
1. <form action="${tPath}/control/employee/list_execute.action" enctype="multipart/form-data" method="post">   
2.     文件1:<input type="file" name="image"><br/>   
3.     文件2:<input type="file" name="image"><br/>   
4.     文件3:<input type="file" name="image"><br/>   
5.     <input type="submit" value="上传"/>   
6.   </form> 
  <form action="${tPath}/control/employee/list_execute.action" enctype="multipart/form-data" method="post">

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。