【发布时间】:2011-05-28 13:41:16
【问题描述】:
我正在编写一个 Java 桌面客户端,它将使用 post 请求通过网络将多个文件发送到 servlet。在 servlet 中,我从请求中获取输入流以接收文件。当从流中读取文件时,servlet 会将文件一一写入磁盘。
实现有几个要求:
- 只能向服务器使用一个 HTTP 请求(因此只有一个流)
- 无论文件大小如何,servlet 都必须使用合理的固定内存量。
我曾考虑在流中插入标记,以便知道一个文件何时结束,下一个文件何时开始。然后我会编写一些代码来解析 servlet 中的流,并根据需要开始编写下一个文件。
事情是这样的……肯定有一个图书馆可以做到这一点。我浏览了 apache commons,一无所获。 Commons 文件上传很有趣,但由于上传来自 Java 应用程序,而不是浏览器,它只解决了接收端,而不是发送端。
对于一个库有什么想法,即使对于非常大的文件,也可以轻松地在单个流中传输多个文件,并具有固定的内存预期?
谢谢。
【问题讨论】:
标签: java http servlets file-upload