티스토리 뷰

Spring Boot

Spring boot File upload

LuxuryCoding 2021. 3. 9. 20:34
728x90

쇼핑몰 프로젝트를 하게 되어서 다중 이미지 업로드를 구현하려고 글을 작성해보려고요

별도의 form은 구현하지 않았고 Postman 으로 test를 진행해볼게용 ㅎㅎ

만약 form을 구현하여 요청을 보내신다면 이런 식으로 작성해 주시면 좋을 거 같아요
<form action="/image" method="post" enctype="multipart/form-data">

application.properties 에 코드 추가

multipart.maxFileSiz=1MB
multipart.maxRequestSize=1MB
최대 용량을 설정하실 때 적당히 크기를 설정해 주시면 ( ex) multipart.maxFileSiz=1000MB multipart.maxRequestSize=1000MB) 아래와 같은 에러가 발생하지 않습니다!!
multipart.MaxUploadSizeExceededException: Maximum upload size exceeded ...

controller 작성

Public class CreateImageController {
    static final String filePath = "파일이 저장될 경로를 설정해주세요"; //파일 경로명

    @ResponseBody
    @ResponseStatus(value = HttpStatus.OK)
    @RequestMapping(method = RequestMethod.POST, path = "/image")
    public String fileupload(@RequestBody List<MultipartFile> files) {
        try {
            for (int i = 0; i < files.size(); i++) {
                files.get(i).transferTo(new File(filePath + files.get(i).getOriginalFilename()));
            }
        } catch (IllegalStateException | IOException e) {
            e.printStackTrace();
        }
        return "file upload";
    }

}
  1. 기본적으로 multifile upload는 Post 방식으로만 가능해서 method = RequestMethod.POST 이렇게 작성했습니다.
  2. filePath라는 변수에 경로를 설정해 주세요 C:UserTraders-backend\src\main\resources\static\images 요런 느낌?
  3. Body에 파일 정보들을 받아서 List로 저장해 주고 반복문을 돌려주어서 여러 개의 파일을 저장해 줍니다.
  4. files로 이름을 만들고 transferTo(New File("파일경로"))로 파일을 만들어주고 저장해 줍니다~

Postman 요청 보내기

  • 처음으로 쓰는 글이다 보니 부족한 게 많지만 앞으로 열심히 블로그를 작성해 보려고요 ㅎ
댓글
최근에 달린 댓글
최근에 올라온 글
Total
Today
Yesterday
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30