实现文件下载:
1.导包:commons-fileload-xx.jar
commons-io-xx.jar
2.jsp页面:
<s:iterator value="#session.fileList"><a href="download.action?fileName=<s:property />"><s:property /></a><br></s:iterator>
3.创建Action:DownLoAction
import java.io.BufferedInputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.InputStream;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class DownloadAction extends ActionSupport {private String fileName; //要下载的文件名private String path; //文件目录private InputStream inputStream; //读取文件,输入流private String contentType; //文件类型public String getContentType() {return contentType;}public void setContentType(String contentType) {this.contentType = contentType;}public void setInputStream(InputStream inputStream) {this.inputStream = inputStream;}public String getFileName() {return fileName;}public void setFileName(String fileName) {this.fileName = fileName;}public String getPath() {path=ServletActionContext.getServletContext().getRealPath("/upload");return path;}public void setPath(String path) {this.path = path;}public InputStream getInputStream() throws FileNotFoundException {inputStream = new BufferedInputStream(new FileInputStream(this.getPath()+"/"+this.getFileName()));return inputStream;}@Overridepublic String execute() throws Exception {return super.execute();}}
4.配置action
<action name="download" class="com.action.DownloadAction"><result type="stream"><param name="contentType">application/octet-stream</param>//文件类型<param name="inputName">inputStream</param>//路径+文件名<param name="contentDisposition">attachment;filename="${fileName}"</param><param name="bufferSize">50000</param>//缓冲区大小</result></action>