【发布时间】:2013-12-13 02:33:55
【问题描述】:
我有一个关于文件上传的问题,这与它的工作原理有关,而不是代码问题。我上网查了一下,没有找到合适的答案。
我有一个在 tomcat 上运行的 Web 应用程序,它处理文件上传(通过 servlet)。假设我现在要上传大文件(> 1 Gb)。我的理解是,一旦整个文件被实际传输,HTTP 请求的多部分内容就可以在我的 servlet 中使用。
我的问题是请求的内容实际存储在哪里?当一个人调用HttpServletRequest.getParts() 时,InputStream 在Part 对象上可用。但是,流从哪里读取? Tomcat 是否将其存储在某个地方?
我想这可能不够清楚,所以我会根据你的 cmets 更新帖子,如果有的话。
谢谢
【问题讨论】:
-
这不是一个直接的答案,但对于这种大小的文件,HTTP 并不是最好的协议。 Base 64 编码进一步增加了文件大小,并且不支持恢复中断的上传。对于快速网络上的企业对企业的东西来说,这并没有那么糟糕,但如果家庭用户在上传数小时的过程中出现短暂的网络中断,他们将不会高兴。
标签: java http tomcat file-upload tcp