struts2 下载文件(解决中文乱码)
1 struts配置
1 <action name="templateDownloadManage" class="templateDownloadAction" > 2 <result type="stream" name="success"> 3 <param name="contentType">application/vnd.ms-excel</param> 4 <param name="inputName">inputStream</param> 5 <param name="contentDisposition">attachment;filename="${myName}"</param> 6 <param name="bufferSize">4096</param> 7 </result> 8 </action>
有的帖子说在application/vnd.ms-excel改为application/vnd.ms-excel;charset=utf-8,不过我没加,貌似也过了
2 action类
1 public class TemplateDownloadAction extends AttachmentAction{ 2 3 private String myName; 4 5 @Override 6 public String execute() throws Exception { 7 super.execute(); 8 9 return SUCCESS; 10 } 11 12 public InputStream getInputStream() throws Exception { 13 return ServletActionContext.getServletContext().getResourceAsStream("imports/" + myName); 14 } 15 16 public String getMyName() throws Exception { 17 return new String(this.myName.getBytes(), "ISO8859-1"); 18 } 19 20 public void setMyName(String myName) throws Exception{ 21 this.myName = myName; 22 } 23 24 25 26 }
3 前端正常传递中文文件名,用action中的myName接收即可