ServletRequest具有API getParts()来读取多部分请求的部分 https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getParts()
它具有part.getInputStream,可用于读取特定部分的内容。
要使其正常工作,必须用https://docs.oracle.com/javaee/6/api/javax/servlet/annotation/MultipartConfig.html注释servlet
MultiPartConfig有一个用于定位的元素,我认为如果需要,可以将这些部分写入磁盘。这意味着零件内容首先会在内部加载到内存中,然后在达到阈值后将零件内容写入磁盘
为什么getPart API需要将内容加载到内存中?为什么不能直接进行内容流传输?将内容加载到内存中并读取/写入磁盘会带来额外的成本。在上传大文件时,这特别昂贵。
是否无法避免至少要加载文件内容?
最好的问候,
Saurav