Почему сохраненный файл из сервлета Java является BMP, когда он должен быть JPG? - PullRequest
1 голос
/ 19 декабря 2011

Я сохраняю фотографии JPG в таблице базы данных и использую сервлеты Java для их отображения на своих веб-страницах. Когда я сохраняю одну из моих фотографий со своей веб-страницы на рабочем столе, браузер сохраняет фотографию в виде файла BMP, когда он должен сохранить ее в виде файла JPG. И файл BMP составляет 35 МБ, когда он составляет всего 3,4 МБ в базе данных. Кто-нибудь может объяснить, как это могло происходить?

Вот как сервлет подает файл ...

        if (resultSet.next()) {
            inputStream = resultSet.getBinaryStream(1);
            if (!resultSet.wasNull()) {
                String mimeType = URLConnection.guessContentTypeFromStream(inputStream);
                if (mimeType == null) {
                    logger.debug("Content Type is image");
                    response.setContentType("image");
                } else {
                    logger.debug("Content Type is " + mimeType);
                    response.setContentType(mimeType);
                }
                line = inputStream.read(buffer);
                while (line != -1) {
                    servletOutputStream.write(buffer, 0, line);
                    line = inputStream.read(buffer);
                }
                inputStream.close();
            }
        }

1 Ответ

3 голосов
/ 19 декабря 2011

Вероятно, причиной того, что ваш браузер выбрал BPM, является тип файла mime.

...