본문 바로가기
Spring Boot

[Spring] REST API로 파일 보내기

by palbokdev 2023. 8. 10.
  @GetMapping(value = "", produces = "application/json;charset=utf-8")
  public ResponseEntity getFile(
      @RequestParam(value = "fileName", required = false) String fileName) throws IOException {

    ResponseEntity respEntity = null;
    File result = new File("YOUR_PATH" + fileName);

    if (result.exists()) {
      InputStream inputStream = new FileInputStream("YOUR_PATH" + fileName);
      String type = URLConnection.guessContentTypeFromStream(inputStream);

      byte[] out = org.apache.commons.io.IOUtils.toByteArray(inputStream);

      HttpHeaders responseHeaders = new HttpHeaders();
      responseHeaders.add("content-disposition", "attachment; filename=" + fileName);
      responseHeaders.add("Content-Type", type);

      respEntity = new ResponseEntity(out, responseHeaders, HttpStatus.OK);
    } else {
      respEntity = new ResponseEntity("File Not Found", HttpStatus.OK);
    }
    return respEntity;
  }

 

ref : https://stackoverflow.com/questions/32641231/return-file-in-spring-mvc-rest