考虑到您的用例(可能是由第三方库读取的大文件上传),我会绕过Spark/Jetty的多部分支持,使用例如
Apache Commons FileUpload
:
ServletFileUpload upload = new ServletFileUpload();
FileItemIterator iter = upload.getItemIterator(request.raw());
while (iter.hasNext()) {
FileItemStream item = iter.next();
String name = item.getFieldName();
InputStream stream = item.getInputStream();
if (item.isFormField()) {
System.out.println("Form field " + name + " with value "
+ Streams.asString(stream) + " detected.");
} else {
System.out.println("File field " + name + " with file name "
+ item.getName() + " detected.");
...
}
}
流式API
,所以这可能就是您想要的(以避免缓冲整个
InputStream