Хотя это не ответ на ваш вопрос, он решает проблему, которую вы пытаетесь решить. YMMV.
Как вы писали, тип mime не является надежным, так как каждый браузер имеет свой способ его определения. Однако браузеры отправляют исходное имя (включая расширение) файла. Поэтому лучший способ справиться с этой проблемой - проверить расширение файла вместо MIME-типа.
Если вам все еще нужен тип mime, вы можете использовать mime.types вашего apache для определения его на стороне сервера.
Нет, необходимо записать файл в памяти или во временный файл.
причина состоит в том, что невозможно предсказать, как кодировка JPEG будет влиять на размер файла.
кроме того, это не достаточно хорошо для "предположения" размер файла; Content-Length
заголовок должен быть пятном - на.
Если это не очень небольшой файл изображения, предпочтите использовать разделенное на блоки кодирование по определению длины содержания.
было отмечено в одном или двух недавних stackoverflow подкастах, что Прокси HTTP часто сообщают, что только поддерживают HTTP/1.0, который может быть проблемой.
Ну, BufferedImage не знает, что пишется как JPEG - что касается его, это мог быть PNG или GIF или TGA или TIFF или BMP..., и у всех тех есть различные размеры файла. Таким образом, я не полагаю, что существует любой путь к BufferedImage, чтобы дать Вам размер файла непосредственно. Необходимо будет просто выписать его и считать байты.