【发布时间】:2016-08-07 06:15:27
【问题描述】:
我的应用程序的当前架构不允许我在服务器端存储文件并创建指向该存储文件的链接。那么是否有任何其他选项(或代码 sn-p)可以直接流式传输 ZipFile 并将其存储在客户端?
编辑: 我想我的问题被误解了。我收到了压缩文件并将其存储在客户端的答案。我已经做到了。以下是示例用例的主要关注点:
场景: 用户有大约 5000 条记录(每条大约 1 MB 大小),用户想要下载以 ZIP 格式压缩的每 5000 条记录的子记录(CSV 格式)。所有 CSV 文件都是即时生成的。
方法: 由于 ZIP 文件的大小可以达到 5 GB,所以我采取了将文件内容直接流式传输到客户端创建的 ZIP 文件的方法。我为此使用了 PipeInputStream 和 PipeOutputStream。
结果: 由于我是 vaadin 的新手,因此我在上述方法中没有成功,因此寻找任何支持将 ZIP 文件(无论大小如何)直接流式传输到客户端的建议/代码 sn-ps。
我想我现在很清楚了。
【问题讨论】:
-
在链接上:vaadin.com/forum#!/thread/2824570你可以找到关于这个话题的讨论。
-
this 与 ZipOutputStream 一起使用有帮助吗?
-
@DraganRadevic 感谢分享我已经探索过该链接的链接,但解决方案说我需要将文件存储在我的服务器中的某个位置并创建链接,以便用户可以使用该链接下载。跨度>
-
@SteffenHarbich 不。
-
您可以在内存中创建ZipOutputStream,然后让用户下载文件。你有更多的选择。创建 BinaryInputStream(静态内容)或 PipedInputStream 如果您想动态下载 zip(同时为大文件创建)