我的应用程序的当前体系结构不允许我在服务器端存储文件并创建指向该存储文件的链接.那么有没有其他选项(或代码片段)直接流ZipFile并将其存储在客户端?
编辑:我想我的问题被误解了.我收到压缩文件的答案并将其存储在客户端.我已经实现了这一点.以下是示例用例的主要关注点:
场景:用户有大约5000条记录(每条大约1 MB),用户希望下载以ZIP格式压缩的每5000条记录的子记录(CSV格式).所有CSV文件都是即时生成的.
方法:由于ZIP文件的大小可以达到5 GB,因此我采用直接将文件内容流式传输到客户端创建的ZIP文件的方法.我已经使用了PipeInputStream和PipeOutputStream.
结果:由于我是vaadin的新手,我在上述方法中没有成功,因此寻找支持将ZIP文件(无论大小可能是直接)流式传输到客户端的任何建议/代码片段.
我想我现在很清楚.
Java JDK 和 Apache commons-compress 不允许您延迟传输 ZIP 档案,因此我实现了一个 Java ZIP 库 [1] 来处理这个问题。当前的限制是它不支持 ZIP64 扩展,这意味着它无法压缩大于 4 GiB 的文件,也无法生成大于 4 GiB 的存档。我正在努力。
[1] https://github.com/tsabirgaliev/zip
| 归档时间: |
|
| 查看次数: |
1191 次 |
| 最近记录: |