struts-基础内容-8-文件下载

来源:互联网 发布:大数据的价值体现在 编辑:程序博客网 时间:2024/06/05 02:14
struts2文件下载需要action提供一个返回InputStream流的方法,代表了被下载文件的入口。

一:写action类

DownloadAction.java

package Action;import com.opensymphony.xwork2.ActionSupport;import java.io.FileInputStream;import java.io.InputStream;/** * Created by cxspace on 16-7-12. */public class DownloadAction extends ActionSupport{    //可以在配置文件中动态的指定该属性值,要下载文件的路径    private String inputPath;
public String getInputPath() { return inputPath; } //依赖注入改属性值的方法 public void setInputPath(String inputPath) { this.inputPath = inputPath; }


定义一个返回InputStream的方法,改方法將作为被下载文件的入口,且需要配置stream类型结果指定的inputName参数
inputName参数值就是方法去掉get前缀、首字母小写的字符串
×/
public InputStream getTargetFile () throws Exception { return new FileInputStream(inputPath); }}

二:配置action

配置期望能键下载,关键是配置一个类型为stream的结果

结果中需要指定的四个关键属性

contentType:指定被下载文件的文件类型

inputName:指定被下载文件的入口输入流

contentDispostion:指定下载文件的文件名

bufferSize:指定下载文件时的缓冲大小

struts.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"        "http://struts.apache.org/dtds/struts-2.3.dtd"><struts>    <package name="testFile" extends="struts-default">        <action name="download" class="Action.DownloadAction">            <!--输入文件的绝对路径-->            <param name="inputPath">/home/cxspace/a.txt</param>            <result type="stream">            <param name="contentType">application/txt</param>            <param name="inputName">targetFile</param>            <param name="contentDisposition">filename="a.txt"</param>            <param name="bufferSize">4096</param>            </result>        </action>    </package></struts>
用户访问接口-index.jsp<%--  Created by IntelliJ IDEA.  User: cxspace  Date: 16-7-12  Time: 下午9:05  To change this template use File | Settings | File Templates.--%>

<%@ page contentType="text/html;charset=UTF-8" language="java" %><html> <head> <title>主页</title> </head> <body> <form method="post" action="download"> <input type="submit" value="下载"> </form> </body></html>

 

0 0
原创粉丝点击