У меня есть странный вопрос:Проблема с проверкой размера InputStream
Мой 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'. Я могу быть не прав. – ZbyszekKr