Я написал простое приложение SpringMVC и хост на Paas. Я создал таблицу в Mysql, а столбец - Blob. Я могу загружать файлы через администратор Mysql. Прямо сейчас, мой сервер может корректно обслуживать файлы html или javascript в браузере. Однако, когда я обслуживаю файл jpg в http://myserver.com/File/ad.jpg, мой браузер показал небольшой значок, и если я его сохраню, программное обеспечение Windows Image покажет, что изображение повреждено.Каков правильный способ работы с файлом изображения из Blob в Spring MVC-контроллере?
Вот некоторые из кода:
@RequestMapping(value="/File/**", //{name:.+}",
method = RequestMethod.GET)
public @ResponseBody void getContent(
// @PathVariable("name") String name,
HttpServletRequest request,
HttpServletResponse response) throws IOException {
String name = request.getPathInfo();
....
IOUtils.copy(blob.getBinaryStream(), out);
Я обнаружил, что getServletContext() возвращает нуль, так что я не смог CONTENTTYPE, так что я спас CONTENTTYPE в Mysql как изображение/JPEG для объявления .jpg. Я установил, что расположение было встроенным. Что еще я должен сделать, чтобы служить jpg?
Попробуйте вернуть 'byte []'. Никогда не записывайте непосредственно в выходные потоки с контроллера Spring MVC. – chrylis
И не забудьте установить правильный тип контента. – Bart
@chrylis Я установил contentType как image/jpeg и использовал write (blob.getBytes (0, length)), но теперь я получил пустую страницу для ad.jpg – Splash