[SPRING] Spring의 Controller에서 파일 반환
SPRINGSpring의 Controller에서 파일 반환
나는 봄이 처음이다. 몇 가지 GET 매개 변수에 대한 RequestMapping이있는 컨트롤러가 있습니다. 그들은 문자열을 반환합니다. 하지만 한 방법은 "/ res /"폴더에있는 파일을 반환해야합니다. 어떻게해야합니까?
@RequestMapping(method = RequestMethod.GET,value = "/getfile")
public @ResponseBody
String getReviewedFile(@RequestParam("fileName") String fileName)
{
return //the File Content or better the file itself
}
감사
해결법
-
==============================
1.@ JAR.JAR.beans에 감사드립니다. 다음은 스프링 컨트롤러에서 파일 다운로드하기입니다.
@ JAR.JAR.beans에 감사드립니다. 다음은 스프링 컨트롤러에서 파일 다운로드하기입니다.
@RequestMapping(value = "/files/{file_name}", method = RequestMethod.GET) @ResponseBody public FileSystemResource getFile(@PathVariable("file_name") String fileName) { return new FileSystemResource(myService.getFileFor(fileName)); }
-
==============================
2.이것이 도움이 될지도 모른다.
이것이 도움이 될지도 모른다.
@RequestMapping(method = RequestMethod.GET,value = "/getfile") public @ResponseBody void getReviewedFile(HttpServletRequest request, HttpServletResponse response, @RequestParam("fileName") String fileName) { //do other stuff byte[] file = //get your file from the location and convert it to bytes response.reset(); response.setBufferSize(DEFAULT_BUFFER_SIZE); response.setContentType("image/png"); //or whatever file type you want to send. try { response.getOutputStream().write(image); } catch (IOException e) { // Do something } }
-
==============================
3.또 다른 방법은, 비록 Jatin의 답은 좀 더 시원합니다.
또 다른 방법은, 비록 Jatin의 답은 좀 더 시원합니다.
//Created inside the "scope" of @ComponentScan @Configuration public class AppConfig extends WebMvcConfigurerAdapter { @Value("${files.dir}") private String filesDir; @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry .addResourceHandler("/files/**") .addResourceLocations("file:" + filesDir); } }
에서 출발 :
-
==============================
4.이것은 나를 위해 매력처럼 작동합니다 :
이것은 나를 위해 매력처럼 작동합니다 :
@RequestMapping(value="/image/{imageId}", method = RequestMethod.GET) public ResponseEntity<byte[]> getImage(@PathVariable String imageId) { RandomAccessFile f = null; try { f = new RandomAccessFile(configs.getImagePath(imageId), "r"); byte[] b = new byte[(int)f.length()]; f.readFully(b); f.close(); final HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.IMAGE_PNG); return new ResponseEntity<byte[]>(b, headers, HttpStatus.CREATED); } catch (Exception e) { return null; } }
from https://stackoverflow.com/questions/13119759/return-a-file-from-controller-in-spring by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring Java 구성을 위해 단일 MessageListenerContainer에 여러 JMS MessageListener를 추가하는 방법 (0) | 2019.05.07 |
---|---|
[SPRING] Spring MVP의 RequestParam 값은 대 / 소문자를 구분하지 않습니다. (0) | 2019.05.07 |
[SPRING] 봄 콩 범위. 싱글 톤과 프로토 타입 (0) | 2019.05.07 |
[SPRING] 최대 절전 모드 jpa를 사용하여 JSON을 직렬화 및 비 직렬화하여 JSON 응답으로 부모 개체를 자식 개체에 넣습니다. (0) | 2019.05.07 |
[SPRING] 싱글 톤 DAO 객체를 가지고 있어도 괜찮습니까? (0) | 2019.05.07 |