Вернуть картинку с сервера через пружинный контроллер

1

В моем контроллере весны я добавляю эти два метода, чтобы загрузить и загрузить изображение из моих представлений:

@RequestMapping(value="picture/{theString}", method=RequestMethod.GET)
public byte[] getPicture(@PathVariable("theString") String theString) {
    return serv.download_picture(theString);
}

@RequestMapping(value="upload", method=RequestMethod.POST)
public boolean setPicture(@ModelAttribute("object") E object, BindingResult result, @RequestParam("file") MultipartFile file) {
    return serv.upload_picture(object, file);
}

setPicture (с эквивалентным upload_picture в классе службы) уже реализованы, но мне нужны некоторые идеи о том, как реализовать download_picture, так как я могу сделать что-то вроде этого:

<img src="<c:url value="<<Entity>>/picture/<<id>>"/>">

любой может указать направление для этого?

PS: Если возможно, я хочу использовать это объявление для моего метода download_picture в моем классе обслуживания:

public byte[] download_picture(String path) {
    return null;
}

где путь - это идентификатор от объекта, который я хочу загрузить.

PS.: Изображения хранятся в папке /src/main/resources в приложении spring/maven. полный URL-адрес внутри этого пути - это что-то вроде <<entity>>/<<id>>/foto.jpeg

Теги:
spring
spring-mvc

1 ответ

1
Лучший ответ

Весной имеющий версии 3.1 или более поздней версии вы можете указать, produces в @RequestMapping аннотацию.
Ниже приведен пример.

@ResponseBody
@RequestMapping("picture/{theString}", method = RequestMethod.GET, produces = MediaType.IMAGE_JPEG_VALUE)
public byte[] testphoto(@PathVariable("theString") String theString) throws IOException 
{
    InputStream in = servletContext.getResourceAsStream("/images/no_image.jpg"); // 
    //Here you may write above code in service class to read file from path "/src/main/resources" as stream and return it to controller class.

    return IOUtils.toByteArray(in);
}  

Пусть это поможет вам.

Справка:
Загрузка изображения с помощью Spring MVC.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню