Struts2 文件下载

来源:互联网 发布:有什么网络兼职的 编辑:程序博客网 时间:2024/06/16 01:26

一、文件下载页面

<body>   <a href="downs.action?fileName=24.gif">下载1</a><p/>   <a href="downs.action?fileName=061.jpg">下载2</a><p/>   <a href="downs.action?fileName=01.jpg">下载3</a><p/>  </body>

二、Action类实现下载

public class DownAction extends ActionSupport {private String fileName; // 文件名private String savePath; // 文件路径public String getFileName() {return fileName;}public void setFileName(String fileName) {this.fileName = fileName;}/** * 获得下载的路径 *  * @return */public String getSavePath() {return ServletActionContext.getServletContext().getRealPath("/upload");}public void setSavePath(String savePath) {this.savePath = savePath;}/** * 返回输入流 *   getDownloadFile ==>  <param name="inputName">downloadFile</param>   * @return * @throws IOException */public InputStream getDownloadFile() throws IOException {return new BufferedInputStream(new FileInputStream(getSavePath() + "/"+ fileName));}@Overridepublic String execute() throws Exception {// TODO Auto-generated method stubreturn SUCCESS;}}


三、struts.xml文件

<!-- 下载 --><action name="downs" class="com.hlx.upload.DownAction"><result name="success" type="stream">         <!-- 文件类型 不限制类型--> <param name="contentType">applcation/octet-stream</param>  <!-- 发送给客户端的文件名fileName="${fileName}" 保持与action中文件名一致-->            <param name="contentDisposition">attachment;fileName="${fileName}"</param>            <!-- 文件对应流对象,与action中的对象名保持一致-->          <param name="inputName">downloadFile</param>  <!-- 缓存大小-->            <param name="bufferSize">1024</param>  </result></action>

四、运行结果:

  



0 0