使用Struts2做一个简单的文件下载。
首先,导包,写配置文件就不说了。
进入主题。
文件下载操作类:FileDownload.java
import java.io.InputStream;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class FileDownload extends ActionSupport{
private InputStream inputStream;
private String fileName;
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public InputStream getInputStream() {
fileName="144003645679.jpg";
return ServletActionContext.getServletContext().getResourceAsStream("/upload/144003645679.jpg");
}
public String execute() {
return SUCCESS;
}
}
Struts.xml文件
<package name="fileaction" namespace="/" extends="struts-default">
<action name="filedownload" class="com.dkx.action.FileDownload" >
<result name="success" type="stream">
<!-- contentType 指定下载文件的文件类型 —— application/octet-stream 表示无限制 -->
<param name="contentType">text/plain</param>
<!-- contentDisposition 使用经过转码的文件名作为下载文件名 ——
默认格式是attachment;filename="${fileName}",
将调用该Action中的getFileName方法。 -->
<param name="contentDisposition">attachment;fileName="${fileName}"</param>
<!-- inputName 流对象名 ——
比如这里写inputStream,它就会自动去找Action中的getInputStream方法。 -->
<param name="inputName">inputStream</param>
<!-- 指定下载文件的缓冲大小 -->
<param name="bufferSize">50000000</param>
</result>
</action>
</package>
Jsp页面文件:
<a href="${basePath }filedownload.action">下载</a>
至此大功告成。点击下载。。