`
从百草园到三味书屋
  • 浏览: 51456 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

IE6下文件下载不能直接打开,提示‘找不到....'

 
阅读更多
这是什么原因呢?
请看我的原始代码:
		if(!StringUtils.isEmpty(name)){
			try{
				String disposition = "attachment;filename="
					+ new String(name.getBytes("gb2312"),"iso-8859-1")
				+ "."+suffix;
				response.addHeader("Content-disposition", disposition);
				response.addHeader("Content-Length", String.valueOf(attachFile.length()));
				in = FileUtils.openInputStream(attachFile);
			    ou = response.getOutputStream();
				IOUtils.copy(in,ou);
			}catch(Exception e){
				e.printStackTrace();
			}finally{
				IOUtils.closeQuietly(in);
				IOUtils.closeQuietly(ou);
			}
		}


只要加上
response.setHeader("Connection", "close");

就OK了
分享到:
评论
4 楼 hemin108 2012-09-12  
public void writeFileToResponse(Object fileObj,
HttpServletResponse response, String fileName, String contentType) {
if (fileObj == null || response == null
|| !StringUtils.hasText(fileName)
|| !StringUtils.hasText(contentType)) {
logger.error("writeFileToResponse the params error");
return;
}
try {
InputStream is = null;
if (fileObj instanceof InputStream) {
is = (InputStream) fileObj;
} else if (fileObj instanceof File) {
is = new FileInputStream((File) fileObj);
} else if (fileObj instanceof byte[]) {
is = new ByteArrayInputStream((byte[]) fileObj);
} else {
throw new ControllerException(
"writeFileToResponse not support:"
+ fileObj.getClass().getName());
}
//处理在IE下无法下载txt 文件问题
if(contentType.equals("text/plain")){
contentType ="application/octet-stream";
}
response.reset();
response.setContentType(contentType);
response.setHeader("Content-disposition", "attachment; filename="
+ new String(fileName.getBytes("GB2312"), "ISO8859-1"));

BufferedInputStream bis = new BufferedInputStream(is);
BufferedOutputStream bos = new BufferedOutputStream(
response.getOutputStream());
long fileLength = 0;
byte[] buff = new byte[2048];
int bytesRead;
while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
fileLength = fileLength + bytesRead;
bos.write(buff, 0, bytesRead);
}
response.setHeader("Content-Length", String.valueOf(fileLength));
response.setHeader("Connection", "close"); 
response.flushBuffer();
bis.close();
bos.close();

} catch (Exception e) {
if (e.getClass().getSimpleName().equals("ClientAbortException")) {
logger.warn("Client Abort download File:{}", fileName);
} else {
throw new ControllerException(e);
}
}
}
3 楼 hemin108 2012-09-12  
我这样写ok了
public void writeFileToResponse(Object fileObj,
HttpServletResponse response, String fileName, String contentType) {
if (fileObj == null || response == null
|| !StringUtils.hasText(fileName)
|| !StringUtils.hasText(contentType)) {
logger.error("writeFileToResponse the params error");
return;
}
try {
InputStream is = null;
if (fileObj instanceof InputStream) {
is = (InputStream) fileObj;
} else if (fileObj instanceof File) {
is = new FileInputStream((File) fileObj);
} else if (fileObj instanceof byte[]) {
is = new ByteArrayInputStream((byte[]) fileObj);
} else {
throw new ControllerException(
"writeFileToResponse not support:"
+ fileObj.getClass().getName());
}
//处理在IE下无法下载t
从百草园到三味书屋 写道
hemin108 写道
还是不行··

那么兄弟,那你找到其他的解决方法了吗?我又遇到了这个问题,但是解决不了哦。

xt 文件问题
if(contentType.equals("text/plain")){
contentType ="application/octet-stream";
}
response.reset();
response.setContentType(contentType);
response.setHeader("Content-disposition", "attachment; filename="
+ new String(fileName.getBytes("GB2312"), "ISO8859-1"));

BufferedInputStream bis = new BufferedInputStream(is);
BufferedOutputStream bos = new BufferedOutputStream(
response.getOutputStream());
long fileLength = 0;
byte[] buff = new byte[2048];
int bytesRead;
while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
fileLength = fileLength + bytesRead;
bos.write(buff, 0, bytesRead);
}
response.setHeader("Content-Length", String.valueOf(fileLength));
response.setHeader("Connection", "close"); 
response.flushBuffer();
bis.close();
bos.close();

} catch (Exception e) {
if (e.getClass().getSimpleName().equals("ClientAbortException")) {
logger.warn("Client Abort download File:{}", fileName);
} else {
throw new ControllerException(e);
}
}
}
2 楼 从百草园到三味书屋 2012-07-08  
hemin108 写道
还是不行··

那么兄弟,那你找到其他的解决方法了吗?我又遇到了这个问题,但是解决不了哦。
1 楼 hemin108 2012-06-29  
还是不行··

相关推荐

    SuperDown

    FTP下载支持多个站点同时下载一个文件(同时支持断点续传).3:可以在不下载ZIP.RAR.ISO文件的情况下查看文件里面的目录文件.4:支持多语言.5:操作综合其它软件.6:自定义快捷键.7:在IE工具栏上加按钮,可以直接拖动连接到...

    chrome打开共享文件夹完美方案

    在IE8下通过a标签的href="本地路径"可以打开,但是chrome以及firefox不可以。 原因:在IE中输入file:///c:windows/地址之后,调用的资源管理器explorer.exe进行打开。chrome等浏览器由于安全机制,采用了文件索引...

    IE主页恢复为空白页的注册表文件

    相信很多童鞋都遇到过IE主页被恶意篡改的情况,这是把IE主页恢复为空白页的注册表文件(给不敢自己修改注册表的童鞋),压缩包里有两个文件,功能相同,但其中一个涉及到的注册表项目多一些,一般情况下,基本能恢复...

    Fly.Box 2.0.2 企业云盘,支持多单位、多用户、断点续传、提取码、分享、收集文件、评论、打分等

    -------请到官网下载最新版本--------- 官网下载:http://flyui.net 演示地址:http://www.flyui.net/demo.php  管理员帐号:admin,密码:admin  普通帐号:test,密码:test 如不能访问,请将DNS设置为:...

    IE11-Windows6.1-KB2929437-x64.msu

    找不到资源“$(string.NoReportSiteProblems)”(在 属性 displayName 中引用)。 文件 C:\windows\PolicyDefinitions\inetres.admx、 行 33590、列 245 win7 64位安装这个补丁就可以了 参考:...

    IE 助手

    弹出窗口关闭时有声音提示,用户可以自由定制提示音,也可以使用MIDI或者WAV 文件,为了不影响他人,用户也可以关闭声音提示。 2.IE贴图换肤 允许用户为IE选择一个位图,用于工具栏、菜单栏、地址栏工具条的...

    Fly.Box 2.0 企业云盘,支持多单位、多用户、断点续传、提取码、分享、收集文件、评论、打分等

    8. 修正部分文件在回收站不能删除 9. 修正部分浏览器第一次加载文件列表失败问题 10.修正分享中心签名显示问题 11.集成QQ邮箱,发送分享通知 #Fly.Box 1.8.1(修正版) 更新: 1. 基础资料分页显示问题 2. 基础...

    Fly.Box 2.1.0 企业云盘,云盘,企业私有云存储解决方案,文档管理系统

    8. 修正部分文件在回收站不能删除 9. 修正部分浏览器第一次加载文件列表失败问题 10.修正分享中心签名显示问题 11.集成QQ邮箱,发送分享通知 #Fly.Box 1.8.1(修正版) 更新: 1. 基础资料分页显示问题 2. 基础...

    Fly.Box 2.0.1 企业云盘,支持多单位、多用户、断点续传、提取码、分享、收集文件、评论、打分等

    8. 修正部分文件在回收站不能删除 9. 修正部分浏览器第一次加载文件列表失败问题 10.修正分享中心签名显示问题 11.集成QQ邮箱,发送分享通知 #Fly.Box 1.8.1(修正版) 更新: 1. 基础资料分页显示问题 2. 基础...

    iSee视频监控 v5.2

    1.1 系统要求 ..................................................................................................................................................6 1.1.1 硬件要求(推荐) ..................

    300个注册表优化修改文件

    2.打开regedi.exe文件,然后手动导出整个注册表文件为*.reg,想恢复直接双击这个*.reg 3.在运行下进入msconfig里然后选择常规后,创建备份和还原备份K 4.不完全注册表恢复,XP和2000重起机器按F8进入,选择上1次正确配置...

    ietools2.6.exe

    *修复症状:文件下载提示框丢失 *修复症状:查看源文件被修改成其他程序 *增加桌面图标字体大小等恢复默认值的功能(其他修复工具) *增加清除文件夹视图记忆功能(其他修复工具) *增加清除网上邻居缓存功能(其他...

    Fly.Box 1.9.2 企业云盘,支持多单位、多用户、断点续传、提取码、分享、收集文件、数据上报、评论等

    8. 修正部分文件在回收站不能删除 9. 修正部分浏览器第一次加载文件列表失败问题 10.修正分享中心签名显示问题 11.集成QQ邮箱,发送分享通知 #Fly.Box 1.8.1(修正版) 更新: 1. 基础资料分页显示问题 2. 基础...

    易语言模块大全

    24位转单色位图模块.ec ... 弹出下载窗口.ec 弹出网页广告.ec 彗星模块1.3.ec 形象大使1.0.ec 循环冗余校验.EC 快捷方式.ec 成组随机数.ec 我的信息框.ec 我的对话框.ec 所有模块.ec 扑克.ec 扑克图像...

    1345个易语言模块

    各类已打开 的数据库记录打印.ec 同步目录.ec 同步缩放控件.ec 同步缩放控件1.0.ec 同步缩放窗口1.0.ec 吸 附模块.ec 周易模块,易经模块,八卦模块 V 1.22.ec 和是几与谁最大.ec 响应左键放开.ec 四则混合运算模 块....

    1350多个精品易语言模块

    1350多个精品易语言模块提供下载介绍 1亦思验证码识别1.5免费版.ec 24位转单色位图模块.ec 32张发牌.ec 3D引擎支持库-eOgre.ec 69msn.ec ACCESS 到高级表格.ec Access操作.ec Access数据库压缩修复新建.ec ACCSEE...

    ofd文件格式预览,前端框架不是vue

    把包引用到项目中。 预览地址: ... 如果提示打开失败,在IIS上MIME类型中添加 文件扩展名:.ofd MIME类型:application/ofd

    IEWebControls安装源码

    友情提示:你成功安装 IEWebControls 后(默认C盘哈),你在CProgram FilesIE Web Controls下有个README.txt的文本文件,上面非常详细的讲解了如何正确使用 IEWebControls 的方法,并给出了样例。:) 以上解决...

Global site tag (gtag.js) - Google Analytics