반응형

내용 설명

Spring 5부터는 Controller 에서 Multipart 를 @RequestPart 어노테이션을 통해
별도 설정 없이 사용할 수 있다.

스프링 4와는 다르게 Jackson JSON 을 사용하고 있어도 별도 설정자체가 필요없다.

Controller

  • C:\ServerFiles 라는 폴더를 만들어서 실행하자.

  • 핵심 기능만 빠르게 보기 위해 Folder 존재 유무 / 생성 등 소스는 뺐다.

  • MultipartFile을 통해 내용을 받고 getName() 으로 파일명을 받을 수 있다.

  • Request DTO 를 던져서 받고 싶다면, @RequestParam으로 받으면 된다. (ex: @RequestParam("title") String title)

      @PostMapping(value="/upload")
      @ResponseBody
      public void fileUpload(@RequestPart MultipartFile files) {
        try {
          String baseDir = "C:\\ServerFiles";
          files.transferTo(new File(baseDir + "\\"+ files.getOriginalFilename()));
        } catch (Exception e) {
          e.printStackTrace();
        }
      }

JSP

  • 잡다한 거 없이 form tag 내에 file upload 부분과 전송 부분만 만들었다.

  • file input 의 name 은 controller 의 Parameter Name과 맞춰주자.

    <%@ page language="java" contentType="text/html; charset=UTF-8"
      pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>File Upload</title>
    </head>
    <body>
      <form action="/upload" method="post" enctype="multipart/form-data">
        <input type="file" name="files">
        <button type="submit">보내기</button>
      </form>
    </body>
    </html>

화면은 아래와 같이 생겼다.

예제 저장소

반응형

WRITTEN BY
데르벨준

,