首页 > 代码库 > struts文件下载
struts文件下载
struts2文件下载,根据浏览器的不同会有不同的错误出现。有的在ie下正常,但是到了火狐就不可以了。具体原因现在还不得知。主要的问题还是在下载文件名为中文的情况,英文没有太多的区别。这里给出详细代码
jsp页面: <a href="http://www.mamicode.com/
action中:
// 文件下载 public InputStream getDownloadFile() throws Exception{ System.out.println(getFileName()); InputStream inputStream = ServletActionContext.getServletContext().getResourceAsStream("/file/廖哲毅论文2.doc"); System.out.println(inputStream); return inputStream; } // 下载 public String downloadFile() throws Exception { return SUCCESS; } //定义文件名称 private String fileName; public void setFileName(String name) throws Exception{
//在IE下可以正常显示中午名称,但是在火狐下就不可以了。具体原因不详 this.fileName = new String(name.getBytes("ISO8859-1"), "utf-8"); } public String getFileName(){ return this.fileName; }
struts.xml配置文件:
<action name="test" class="testAction"> <result name="successf">/index.jsp </result> <result name="success" type="stream"> <!--指定文件下载类型 application/octet-stream默认值可以下载所有类型 --> <param name="contentType"> application/octet-stream; </param> <!-- 指定下载的文件名和显示方式 ,但注意中文名的乱码问题,解决办法是:进行编码处理(不同浏览器会有不同情况)--> <!--contentDisposition是文件下载的处理方式,包括内联(inline)和附件(attachment), 默认是inline, 使用附件时这样配置:attachment;filename="文件名" 。--> <param name="contentDisposition"> attachment;filename="${fileName}" </param> <!--由getDownloadFile()方法获得inputStream--> <param name="inputName">downloadFile</param> <!-- 指定下载文件的缓存大小--> <param name="bufferSize">2048</param> </result> </action>
struts文件下载
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。