From bd237b2115e045ae003d0157e85b70a87ac50d9b Mon Sep 17 00:00:00 2001 From: Alexandre Lombard Date: Tue, 21 Mar 2017 17:33:31 +0100 Subject: [PATCH] master (#1455) * Example code to return image with @ResponseBody * Example code showing how to return images using @ResponseBody * Example code showing how to return images using @ResponseBody --- .../baeldung/produceimage/Application.java | 14 +++++++ .../controller/DataProducerController.java | 38 ++++++++++++++++++ .../com/baeldung/produceimage/data.txt | 1 + .../com/baeldung/produceimage/image.jpg | Bin 0 -> 6170 bytes 4 files changed, 53 insertions(+) create mode 100644 spring-rest/src/main/java/com/baeldung/produceimage/Application.java create mode 100644 spring-rest/src/main/java/com/baeldung/produceimage/controller/DataProducerController.java create mode 100644 spring-rest/src/main/resources/com/baeldung/produceimage/data.txt create mode 100644 spring-rest/src/main/resources/com/baeldung/produceimage/image.jpg diff --git a/spring-rest/src/main/java/com/baeldung/produceimage/Application.java b/spring-rest/src/main/java/com/baeldung/produceimage/Application.java new file mode 100644 index 0000000000..179671d094 --- /dev/null +++ b/spring-rest/src/main/java/com/baeldung/produceimage/Application.java @@ -0,0 +1,14 @@ +package com.baeldung.produceimage; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.PropertySource; + +@EnableAutoConfiguration +@ComponentScan("com.baeldung.produceimage") +public class Application { + public static void main(final String[] args) { + SpringApplication.run(Application.class, args); + } +} diff --git a/spring-rest/src/main/java/com/baeldung/produceimage/controller/DataProducerController.java b/spring-rest/src/main/java/com/baeldung/produceimage/controller/DataProducerController.java new file mode 100644 index 0000000000..6f34bdb9ae --- /dev/null +++ b/spring-rest/src/main/java/com/baeldung/produceimage/controller/DataProducerController.java @@ -0,0 +1,38 @@ +package com.baeldung.produceimage.controller; + +import org.apache.commons.io.IOUtils; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.io.IOException; +import java.io.InputStream; + +@Controller +public class DataProducerController { + + @GetMapping("/get-text") + public @ResponseBody String getText() { + return "Hello world"; + } + + @GetMapping(value = "/get-image") + public @ResponseBody byte[] getImage() throws IOException { + final InputStream in = getClass().getResourceAsStream("/com/baeldung/produceimage/image.jpg"); + return IOUtils.toByteArray(in); + } + + @GetMapping(value = "/get-image-with-media-type", produces = MediaType.IMAGE_JPEG_VALUE) + public @ResponseBody byte[] getImageWithMediaType() throws IOException { + final InputStream in = getClass().getResourceAsStream("/com/baeldung/produceimage/image.jpg"); + return IOUtils.toByteArray(in); + } + + @GetMapping(value = "/get-file", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE) + public @ResponseBody byte[] getFile() throws IOException { + final InputStream in = getClass().getResourceAsStream("/com/baeldung/produceimage/data.txt"); + return IOUtils.toByteArray(in); + } + +} diff --git a/spring-rest/src/main/resources/com/baeldung/produceimage/data.txt b/spring-rest/src/main/resources/com/baeldung/produceimage/data.txt new file mode 100644 index 0000000000..3cd18170c0 --- /dev/null +++ b/spring-rest/src/main/resources/com/baeldung/produceimage/data.txt @@ -0,0 +1 @@ +This is a sample file containing text data \ No newline at end of file diff --git a/spring-rest/src/main/resources/com/baeldung/produceimage/image.jpg b/spring-rest/src/main/resources/com/baeldung/produceimage/image.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0262656a33a02978a6c4a4754856801a839fd597 GIT binary patch literal 6170 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 literal 0 HcmV?d00001