<html> <head></head> <body> <h4>File: <s:property value="fileFileName" /> <a href='FileDownloadAction.action?fileName=<s:property value="fileFileName" />'>点击下载</a></h4><br/> </body> </html>
<action name="FileDownloadAction" class="fileDownloadAction"> <param name="savePath">/upload</param> <result name="success" type="stream"> <param name="contentType">text/plain</param> <param name="contentDisposition">attachment;fileName="${fileName}"</param> <param name="inputName">inputStream</param> </result> </action>
import java.io.InputStream; import org.apache.struts2.ServletActionContext; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import com.opensymphony.xwork2.ActionSupport; @SuppressWarnings("all") @Scope("prototype") @Controller("fileDownloadAction") public class FileDownloadAction extends ActionSupport { @Override public String execute() throws Exception { return SUCCESS; } private String fileName; private String savePath; private InputStream inputStream; public String getFileName() { return fileName; } public void setFileName(String fileName) { this.fileName = fileName; } public String getSavePath() { return savePath; //return ServletActionContext.getServletContext().getRealPath(savePath); } public void setSavePath(String savePath) { this.savePath = savePath; } public InputStream getInputStream() { return ServletActionContext.getServletContext().getResourceAsStream(getSavePath() + "//" + getFileName()); } public void setInputStream(InputStream inputStream) { this.inputStream = inputStream; } }
import java.io.InputStream; import org.apache.struts2.ServletActionContext; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import com.opensymphony.xwork2.ActionSupport; @SuppressWarnings("all") @Scope("prototype") @Controller("fileDownloadAction") public class FileDownloadAction extends ActionSupport { @Override public String execute() throws Exception { return SUCCESS; } private String fileName; private String savePath; private InputStream inputStream; public String getFileName() { return fileName; } public void setFileName(String fileName) { this.fileName = fileName; } public String getSavePath() { return savePath; //return ServletActionContext.getServletContext().getRealPath(savePath); } public void setSavePath(String savePath) { this.savePath = savePath; } public InputStream getInputStream() { return ServletActionContext.getServletContext().getResourceAsStream(getSavePath() + "//" + getFileName()); } public void setInputStream(InputStream inputStream) { this.inputStream = inputStream; } }