为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

Struts实现文件下载中文乱码解决方案

2017-09-17 5页 doc 17KB 10阅读

用户头像

is_882336

暂无简介

举报
Struts实现文件下载中文乱码解决方案Struts实现文件下载中文乱码解决方案 页面一开始进去action,action负责把file文件夹下的所有文件读入一个ArrayList中 Action代码如下: ArrayList list = new ArrayList(); String path=request.getRealPath("/")+"file"; String FullPath; //System.out.println(path); myDir=new File(path); list.clear(); contents=myDir...
Struts实现文件下载中文乱码解决方案
Struts实现文件下载中文乱码解决 页面一开始进去action,action负责把file文件夹下的所有文件读入一个ArrayList中 Action代码如下: ArrayList list = new ArrayList(); String path=request.getRealPath("/")+"file"; String FullPath; //System.out.println(path); myDir=new File(path); list.clear(); contents=myDir.listFiles(); for(int i=0;i <%ArrayList list=(ArrayList)request.getAttribute("list"); for(int i=0;i"+list.get(i)+"
"); } %> 注意,下划线画中的代码的作用,就是解决问题的所在。 接下来可以直接传入到loadedaction中,也可以通过一个form,我演示的是通过一个form Form代码如下 网管u家u.bitsCN.com package org.aeolus.struts.form; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; public class LoadForm extends ActionForm { /* * Generated Methods */ private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } 接下来就是action的代码 LoadForm doc=(LoadForm)form; String docName = new String(doc.getName().getBytes("8859_1")); 网管bitscn_com File f; if(docName!=""){ String docFullPath=request.getRealPath("/"); f = new File(docFullPath+"file\\"+docName); response.reset(); response.setContentType("application/x-msdownload;charset=GBK"); System.out.print(response.getContentType()); response.setCharacterEncoding("UTF-8"); 中国网管论坛bbs.bitsCN.com docName=java.net.URLEncoder.encode(docName,"UTF-8"); response.setHeader("Content-Disposition", "attachment; filename=" +new String(docName.getBytes("UTF-8"),"GBK")); BufferedInputStream br = new BufferedInputStream(new FileInputStream(f)); byte[] buf = new byte[1024]; int len = 0; OutputStream out = response.getOutputStream(); while((len = br.read(buf)) >0) 网管bitscn_com out.write(buf,0,len); out.close(); response.wait(); ActionForward forward=new ActionForward("/download.jsp"); return forward; } return null; 注意,下划线画中的代码的作用,就是解决问题的所在。 说明一下 response.setCharacterEncoding("UTF-8"); docName=java.net.URLEncoder.encode(docName,"UTF-8"); 网管论坛bbs_bitsCN_com response.setHeader("Content-Disposition", "attachment; filename=" +new String(docName.getBytes("UTF-8"),"GBK")); 如果不这样做你将要下载的文件名是乱码。 说明就到这里,如果有问题或要eclipse下的代码可以留下你的地址,我会尽可能的给 你发邮件。
/
本文档为【Struts实现文件下载中文乱码解决方案】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索