Struts2.x文件上传和下载

来源:互联网 发布:次世代软件 编辑:程序博客网 时间:2024/06/04 17:48


Struts2.x进行文件上传和下载

文件上传

文件上传要点:

1.form表单 的方法必须是post  enctype必须是 multipart/form-data

 <form action=“” method=post enctype=multipart/form-data>

 

 

单个文件上传:

<form>

Username:<input type=textname=username/>

File:<input type=filename=myfile/>

<input type=submitvalue=submit/>

</form>

2.处理action的属性定义

   private  String  username;

   private  File    myfile;

   Private  String  myfileFileName;   必须遵循的命名规则xxxFileName

   Private  String  myfileContentType;

   必须遵循的命名规则xxxContentType   xxx指的是form表单的name属性

    

生成settergetter方法

 

3.execute里面的方法

1.先获得上传到哪里   即确定path路径

2.得到输入输出流 

3.操作输入输出流

4.关闭资源文件 IO

 

   ①定义路径

  String path=e:+File.separator+test

 

   ②获得输入输出流

     InputStream inputStream=new FileInputStream(myfile);

     File newfile=new File(path,myfileFileName)

     OutputStream outputStream=new FileOutputStream(newfile)

 

   ③操作io

     byte[] buffer=new byte[1024];

     int len=0;

     

     while( (len=inputStream.read(buffer))!=-1 ){

outputStream.write(buffer,0,len);

 

}

   ④关闭资源文件

inputStream.close();

outputStream.close();

 

多个文件上传:

<form>

Username:<input type=textname=username/>

File:<input type=filename=myfile/>

File:<input type=filename=myfile/>    

File:<input type=filename=myfile/>

<input type=submitvalue=submit/>

</form>

注意:File文件的name属性要相同

 

2.处理action的属性定义

   private  String  username;

   private  List<File>    myfile;

   Private  List<String>  myfileFileName;      

   Private  List<String>  myfileContentType;

 

   必须遵循的命名规则xxxFileName

   必须遵循的命名规则xxxContentType   xxx指的是form表单的name属性  

   生成settergetter方法

 

 

Struts2.x很重要的一个特点就是能够自动赋值,即OGNL(对象图导航语言)

IO操作和单个文件上传类似,只是多了一个for循环。

 

如果自定义了拦截器,那么默认拦截器就放在自定义拦截器后面。可以自定义上传文件大小。属性是:maximumSize

进行文件上传时候记得method方法和enctype属性的设置

 

 

文件下载

比较简单:

1.action类中定义一个获得输入流的方法 

InputStream getDownloadStream(){

 

 

          String  path=xxx;

          return ServletActionContext.getServletContext.getResourceAsStream(path);

 

}

 

2.配置  

        <result type=stream>

好几个参数

        </result>

  

0 0
原创粉丝点击