首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

struts2兑现文件上传和下载

2013-03-27 
struts2实现文件上传和下载一、文件上传???????? 1、客户端表单? ???????????????? s:form actionupload

struts2实现文件上传和下载

一、文件上传

???????? 1、客户端表单?

????????????????

<s:form action="upload" theme="simple" enctype="multipart/form-data">    <table align="center" border="1" width="50%">          <tr>                    <td>         <s:file name="file" label="file1" id="fileid"></s:file>    </td>          </tr>          <tr>      <td>            <s:submit value="submit"></s:submit>       </td>           </tr>     </table></s:form>

?2?、struts.xml配置

?????

<action name="upload" name="code">for (int i = 0; i < file.size(); i++) {     InputStream is = new FileInputStream(file.get(i));    String root = ServletActionContext.getRequest().getRealPath("/upload");     File destFile = new File(root, this.getFileFileName().get(i));     OutputStream os = new FileOutputStream(destFile);     byte[] buffer = new byte[400];    int length = 0;    while ((length = is.read(buffer)) > 0) {os.write(buffer, 0, length);}      is.close();      os.close();}

?二、文件下载

??????? 1、客户端表单

????????????????

<s:a href="/MyStructs2/download.action">download</s:a>

????? 2、struts.xml配置

?????????????

 <action name="download" type="stream">               <param name="contentType">text/plain</param>               <param name="inputName">downloadFile</param>               <param name="contentDisposition">attachment;filename="linux.txt"</param>               <param name="bufferSize">1024</param>                    </result>      </action>

???? 3、action类实现getDownloadFile方法

???????

public InputStream getDownloadFile(){return ServletActionContext.getServletContext().getResourceAsStream("/upload/linux3.txt");}

?三、测试一下吧!

???????

1 楼 叶凡520 2011-03-24   我想使用楼主这个方法 但是 好像会报错的  说的是 不能找到 一个变量名叫downloadFile的java.io.InputStream型变量,然后我就到Action中写了这个变量,但还是不行,请问楼主,能不能把这个说得详细点,原始的下载方法真的很烦,代码得一堆,这个简单 但是报错啊,呵呵,麻烦了。 2 楼 fushengfei 2011-03-29   叶凡520 写道我想使用楼主这个方法 但是 好像会报错的  说的是 不能找到 一个变量名叫downloadFile的java.io.InputStream型变量,然后我就到Action中写了这个变量,但还是不行,请问楼主,能不能把这个说得详细点,原始的下载方法真的很烦,代码得一堆,这个简单 但是报错啊,呵呵,麻烦了。



你好!在进行文件下载的时候,必须保证upload目录下有"linux.txt"文件。
否则getDownloadFile()返回为空,就会抛出找不到downloadFile的java.io.InputStream型变量。  

热点排行