标签:style blog http io ar color os 使用 sp
当下载的文件名字中不含有汉字,或者下载的文件不需要考虑用户的权限问题时。直接让超链接的href属性为所要下载的文件名即可。否则最好使用struts2的文件下载机制。
以下载图片为例
完整的代码:
action:
import java.io.File; import java.io.InputStream; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.Action; public class FileDownloadAction implements Action{ private String filepath=null; private InputStream inputStream=null; public void setFilepath(String filepath) { this.filepath = filepath; } public InputStream getFile(){ return inputStream; } @Override public String execute() throws Exception { String filename=ServletActionContext. getRequest().getParameter("filename"); inputStream=ServletActionContext. getServletContext().getResourceAsStream(filepath+ File.separator+filename); if(inputStream!=null){ return SUCCESS; }else { return ERROR; } } }
struts.xml配置:
<package name="syxpj" extends="struts-default" namespace="/syxpj"> <action name="download" class="download" > <result name="success" type="stream"> <param name="contentType">image/jpg</param> <param name="inputName">file</param> <param name="contentDisposition">filename="${request[‘filename‘]}"</param> <param name="bufferSize">1024</param> </result> </action> </package>
使用:
<a href="${pageContext.request.contextPath}/syxpj/download.action?filename=belle.jpg">数据模板</a>
其他文件只需要将action 的result的contentType参数变为相应的值即可。
标签:style blog http io ar color os 使用 sp
原文地址:http://www.cnblogs.com/yaoyinglong/p/4130401.html