【发布时间】:2016-12-18 17:34:23
【问题描述】:
我有一个奇怪的问题:
我的 dropwizard API 处理上传的文件并将其保存为 JPEG 图像
上传的文件被读取为InputStream。
FormDataBodyPart fileBody 使用 @FormDataParam("file") 读取
InputStream imageStream = fileBody.getValueAs(InputStream.class);
final int maxSize = 102400;
final byte[] bytes = new byte[maxSize + 1];
int totalBytes = this.imageStream.read(bytes);
System.out.println("totalBytes:"+totalBytes);
无论上传文件的原始大小如何,返回的 totalBytes 值永远不会大于 8181。我尝试使用 800KB 和 1.3MB 文件
HttpServletRequest.getContentLength() 显示上传的正确字节数
我在这里错过了什么?
【问题讨论】:
-
我只想指出幻数
8181有一些可能的解释:8181*8=65 448 ~ 65 536 = 2^16->16 bits = 2 bytes。我可能错了。
标签: java inputstream multipartform-data dropwizard