[size=medium]
response.setContentType("application/octet-stream");
String docBasePath = request.getSession().getServletContext().getRealPath("/").replace("/", File.separator).replace("\\", File.separator);
docBasePath = docBasePath.substring(0,docBasePath.length()-1);
String url = (String)request.getAttribute("url");
String docPath = (url).replace("/", File.separator).replace("\\", File.separator);
String fileRealName = docPath.substring(docPath.lastIndexOf(File.separator)+1);
String filePath = docBasePath+docPath;
File file = new File(filePath);
List<LawCaseDoc> caseDoc = this.getDocDao().find("from LawCaseDoc caseDoc where caseDoc.url like'%"+fileRealName+"%'");
String fileName = "";
if(caseDoc.size()==0){
fileName = this.getFileDao().find("from SysFile sysFile where sysFile.fileUrl ='%"+fileRealName+"%'").get(0).getFileName();
}else{
fileName = caseDoc.get(0).getName();
}
response.setContentLength((int)file.length());
if (request.getHeader("User-Agent").toLowerCase().indexOf("firefox") > 0){
fileName = new String(fileName.getBytes("UTF-8"),"ISO8859-1");//firefox浏览器
}else if (request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0){
fileName = URLEncoder.encode(fileName,"UTF-8");//IE浏览器
}
response.reset();//如果有换行,对于文本文件没有什么问题,但是对于其它格
response.setHeader("Content-Disposition","attachment;filename="+fileName);
OutputStream out = response.getOutputStream();
FileInputStream fis = new FileInputStream(file);
byte[]b = new byte[1024];
int len = 0;
while((len = fis.read(b))>0){
out.write(b, 0, len);
}
fis.close();
out.flush();
out.close();
//创建file对象
[/size]
分享到:
相关推荐
Java实现文件下载并解决中文文件名乱码
往往开发环境和生产环境在环境部署时会遇到很多奇怪的问题,此次word文档下载就被卡住了,通过一番努力终于找到了原因,分享给大家。上传文件txt格式,内有方法详细的代码注释及原因说明,jar包比较常见,大家自行...
jsch-0.1.53 不支持修改编码格式,sftp.setFilenameEncoding("GBK");这样修改是不起作用的,所以必须修改源码。此处是修改源码后重新导出的jar包。
我上传的是一个servlet,里面有详细的说明,自己看看就知道怎么做了
多文件上传例子,彻底解决中文乱码问题了。总结中文乱码问题如下: 1、所有页面都用UTF-8。 2、写过滤器,设置request.setCharacterEncoding("UTF-8")。 3、javascript脚本里用encodeURI(str)。 4、适当的时候,在...
问题描述:Java应用下载文件功能,输出文件名中的中文乱码
主要介绍了Java中FTPClient上传中文目录、中文文件名乱码问题解决方法,本文使用apache-commons-net工具包时遇到这个问题,解决方法很简单,需要的朋友可以参考下
java导出文件文件名处理
我最近在开发时遇到了文件另存为时文件名出现乱码,在火狐上正常的文件名,在IE中又出现乱码问题,然后好不容易在IE下调试好了文件名乱码问题,在火狐下又出现乱码,最后终于感觉这样是能解决了。具体如下:
主要介绍了详解关于java文件下载文件名乱码问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
感谢你的下载,文件说明如下: *jsch的源文件 *jsch的依赖包 *用jsch源文件及依赖包构建的项目,便于修改其源码* ...如果乱码问题依然没解决,这个类也许能帮你找到你需要更改的编码类型。然后修改那三处地方。
项目中碰到问题.jdk zipEntry 压缩中文文件名乱码 上网查了下,有两种方法,一种修改jdk ZipInputStream及ZipOutputStream 的源文件,比较麻烦,不建议此项. 第二种 就是拿来主义,因为 开源项目 Ant 里已经有...
主要介绍了Java实现ftp文件上传下载解决慢中文乱码多个文件下载等问题的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
java 压缩目录中的所有文件 中文文件名不会乱码
CompresszZipFile 中带是 zip解压 ZipFileUtil 是文件的压缩 和rar的解压
读取zip文件,不解压缩直接解析,支持文件名中文,解决内容乱码(还是以支付宝对账单为例)
Java实现文件下载,支持好几种下载方法,解决了中文文件名乱码问题.
java中使用ZipEntry对文件目录下的所有文件进行压缩,已解决中文乱码问题,亲测可用,请放心下载。
本篇文章主要介绍了解决Java原生压缩组件不支持中文文件名乱码的问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
文件系统中文文件名乱码,可根据代码对文件名编码格式进行转换