<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;
}
}