导出CSV文件的问题

forestking_xx 2008-07-18 02:03:19
你好。
response.setContentType("application/x-download");
response.setHeader("Content-Disposition", "attachment; filename=text.csv");
在导出CSV的时候,当要求Save or Open对话框打开以后,如果长时间不处理,再去Save的时候就没有数据下载下来。如果很快就处理,那么功能是正常的。
我觉得这是因为,虽然用户还没有处理,但是,后台已经把数据写到了response里,当后台处理完以后,response writer已经关闭了,所以有些数据丢失了。
我想到两个解决方案:
1 就是不出现那个对话框,要求保存会打开,直接保存,不知道这样该怎么做?
2 当点了Save以后,再开始后台处理,这个又怎么做呢?
...全文
164 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
forestking_xx 2008-07-21
  • 打赏
  • 举报
回复
继续求教
youjianbo_han_87 2008-07-21
  • 打赏
  • 举报
回复
关注学习中
xiaolei1982 2008-07-19
  • 打赏
  • 举报
回复
帮你顶
老紫竹 2008-07-18
  • 打赏
  • 举报
回复
1 直接保存不可能,这是浏览器的设置
2 点Save之后再开始数据传输,这个基本也不可能,因为点的操作,服务器拿不到任何信息
3 至于数据中断,应该是连接超时,那个keep-alive无助于解决。

你遇到的问题,我还真没注意到,长时间不点确定,就会断。我去测试看看。哈哈
forestking_xx 2008-07-18
  • 打赏
  • 举报
回复
4楼能解释一下所加header的意义吗?我不知道这些和我的适用场景是否一致。 我要导出很多数据。
sgdb 2008-07-18
  • 打赏
  • 举报
回复
是你的header里缺东西吧,

加上
response.setHeader("Cache-Control", "store, cache, must-revalidate, post-check=0, pre-check=0");
response.setHeader("Keep-Alive", "close");
试试
胡矣 2008-07-18
  • 打赏
  • 举报
回复
没弄过 帮顶
laorer 2008-07-18
  • 打赏
  • 举报
回复
这样吧,当点击save之后,你提供个链接给他,让他自己去下

67,542

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧