浏览 5551 次
精华帖 (0) :: 良好帖 (2) :: 新手帖 (9) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-10-19
1. 客户端向servlet请求一个 .xls 文件的下载; 2. servlet正确响应,向客户端提供一个输出流; 3. 客户端浏览器接收输出流,自动调用Office-Excel软件的浏览器插件在浏览器窗口里直接打开这个.xls 文件,用户无法控制“另存为”。 网上搜了很多帖子和文章,基本都没有说到点子上。有人就此提问,下面跟帖的就七嘴八舌地争论应该set什么content-type,也就是response.setContentType("xxx");。其实这些都是没用的,无论xxx设成什么,浏览器想怎么干还是怎么干,关键在哪儿呢?这是我找到的一个帖子,楼主遇到同样的问题并已经给出了正确的代码,但显然他并不清楚到底正确在哪里,属于典型瞎猫撞到死耗子: http://www.cjsdn.net/post/view?bid=2&id=5367&sty=3&tpg=127&age=0 关键在哪里呢?请注意这一行: response.addHeader("Content-Disposition", "attachment; filename=" + response.encodeURL(downloadfile)); 注意到第一个值项是attachment,这是真正的关键,设定了这个值,浏览器就会老老实实地显示另存为对话框,如果这个值设成inline,则无论怎样浏览器都会自动尝试用已知关联的程序打开文件。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-10-21
这个没试过,改天试一下
|
|
返回顶楼 | |
发表时间:2009-10-21
呵呵 我一直使用的是 attachment
|
|
返回顶楼 | |
发表时间:2009-10-22
还有一种方法,把浏览器的 execel 插件屏蔽,就可以弹出 另存为 对话框了
|
|
返回顶楼 | |
发表时间:2009-10-22
收益非浅。不晓得怎么屏蔽自动弹出下载工具哦
貌似有些网站就自动屏蔽了下载工具,直接弹出另存为对话框。 |
|
返回顶楼 | |
发表时间:2009-10-23
这个用过,不过没试过当文件一大性能如何
|
|
返回顶楼 | |
发表时间:2009-10-23
用rails就简单了
|
|
返回顶楼 | |
发表时间:2009-10-23
还要注意downloadfile下载文件名过长的问题
如果过长,浏览器会自动截断变成了乱码了 google是这样处理的:这种情况下,把文件压缩一个包,然后下载这个压缩包。 |
|
返回顶楼 | |
发表时间:2009-10-23
无语 !
|
|
返回顶楼 | |
发表时间:2009-10-23
朗拿颠老 写道 这个用过,不过没试过当文件一大性能如何
这年头,叫“朗拿”的都会踢球呵呵,大朗拿小朗拿小小朗拿都是“先生”哇。 大文件没试过,目前没用到,不过关于断点下载还是有很多文章可以参考的。 |
|
返回顶楼 | |