struts2文件下载 注意中文问题
2013-06-08 15:57
501 查看
1.页面
<ahref="downAction?filename=要下载的文件名">要下载的文件名</a>
2.DownAction
import java.io.InputStream;import java.io.UnsupportedEncodingException;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public
class DownAction extends ActionSupport {
private String
filename;
public String getFilename() {
return
filename;
}
public
void setFilename(Stringfilename) {
try {
this.filename =
newString(filename.getBytes("ISO-8859-1"),"UTF-8");
}catch(UnsupportedEncodingException e) {
e.printStackTrace();
}
}
public InputStream getInputStream(){
HttpServletResponse response =ServletActionContext.getResponse();
try {
response.setHeader("Content-Disposition","attachment;fileName="+java.net.URLEncoder.encode(filename,"UTF-8"));
}catch(UnsupportedEncodingException e) {
e.printStackTrace();
}
return ServletActionContext.getServletContext().
getResourceAsStream("/up/"+filename);
}
@Override
public String execute()
throws Exception {
System.err.println("InputStream:"+getInputStream());
此处最好打印以下测试看看是否获取到输出流
System.err.println("下载:" + getFilename()+">>>>>>"+ServletActionContext.getServletContext().
getRealPath(getFilename()));
return
SUCCESS;
}
}
3.struts.xml
<packagename="user"
extends="struts-default"namespace="/">
<!—-引用拦截器 -->
<default-interceptor-ref
name="defaultStack"></default-interceptor-ref>
<action
name="downAction"
class="czb.hr.user.action.DownAction">
<result name="success"
type="stream">
<!-- 调用getFile方法 -->
<param name="inputName">InputStream</param>
<!-- 以下会下载图片,注意第一个参数 -->
<param name="contentDisposition">attachment;filename="${filename}"</param>
<param name="bufferSize">4096</param>
</result>
<exception-mapping
result="error"
exception="java.lang.Exception"></exception-mapping>
</action>
</package>
相关文章推荐
- struts2 Annotation 实现文件下载功能 文件名中文乱码问题
- struts2文件下载及文件名中文问题
- strtus2 批量下载 中文问题、压缩文件等 ------ 讨论struts2工作流程 (摘自:http://www.blogjava.net/xcp/archive/2009/10/30/downloadlist.html)
- 使用struts2实现下载功能遇到的文件中文问题解决经验分享
- struts2文件下载中文乱码问题彻底解决
- Struts2学习9--中文文件下载的问题
- struts2 文件下载方式 此法解决下载中文文件问题。不错
- Struts2 文件下载中文文件名乱码问题
- struts2 文件下载中文乱码问题解决方案
- struts2文件下载的时候,处理中文文件名的问题
- Struts2 文件下载及中文乱码问题的解决方案
- strtus2 批量下载 中文问题、压缩文件等 ------ 讨论struts2工作流程
- strtus2 批量下载 中文问题、压缩文件等 ------ 讨论struts2工作流程
- Struts2 文件下载及中文乱码问题的解决方案
- struts2解决文件上传下载中文乱码问题
- struts2 文件下载方式 此法解决下载中文文件问题。不错
- struts2 文件下载方式 此法解决下载中文文件问题
- struts2 下载文件不能显示中文名字的问题
- 文件下载--Struts2的中文文件下载显示为空格问题
- 用Struts2更好的实现文件的上传、下载功能以及解决中文名称问题