关于struts2文件批量下载 ,不用zip之类的压缩处理方式,怎么解决
发问题前,先给出一个我和有相同疑问的帖子
http://bbs.csdn.net/topics/340121358
我的问题是这样,web服务器上,某个目录下成对存放着两个文件,文件大小不定,大的可能好几百M,在没有好的体验解决方案前,直接不考虑服务器压缩打包成一个zip文件,因为压缩时间太长了!!其实我都是这么做了,但是客户直接否定!
然后就面临这个问题了,我怎么把两个文件一次下载到客户端??
要是觉得这个事情简单的话,希望先看前面链接的帖子,里面有不少讨论,都是各自的想法,但是都太儿戏了。
还请高手能给出个解决方案 ,拜谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
不可以一边压缩一边输出么?兄弟你想多了,既然压缩慢那就不要等压缩了再下载了,一边压缩一边下载不就好了么?
ZipOutputStream zos = new ZipOutputStream(response.getOutputStream());
设置好头信息,主要是下载的文件名,zos里想压什么压什么,通过了得给我最佳答案哈。
隐藏一堆 a 标签,用js 去挨个click试试!
不确定OK!
嗯,多谢指点,刚刚看了下,他的多文件下载,推荐使用了客户端安装程序,它的网页下载,也是采用了压缩后下载,只是它的压缩速度惊人的快!!我得看下java的快速压缩能不能搞
没得一个事件同时下载两个文件的。你自己好好看看百度网盘。你看看人家怎么实现的。
嗯,你的回答给了我灵感,呵呵,还是采用压缩吧,压缩前跳转到一个页面去提示“数据正在传输中..”,其实是在后台压缩,压缩完了,通过ajax给前台返回信息,接下来才触发真正的下载请求这时候去open链接,用这个手段先忽悠下吧,不行真的只能open若干次了,因为除开文件成对出现,还好有一个分页列表可以批量选择,到时候就是10*2次的open了,真不想看到这样的结果
点击按钮后,触发js事件,open两次两个文件地址就完了,界面就一个地址啊.
谢谢你的关注, 都不行的,前者已经被否定,压缩时间太长,体验太差 后者用js发生两次,我这里可能没描述清楚,界面只允许显示一个文件地址,然后点击下载后,后台默认把另外一个文件同步下载下来
服务端压缩后给客户端,
或,
js window.open两次.