티스토리 뷰
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";
}
}
- 기본적으로 multifile upload는 Post 방식으로만 가능해서 method = RequestMethod.POST 이렇게 작성했습니다.
- filePath라는 변수에 경로를 설정해 주세요 C:UserTraders-backend\src\main\resources\static\images 요런 느낌?
- Body에 파일 정보들을 받아서 List로 저장해 주고 반복문을 돌려주어서 여러 개의 파일을 저장해 줍니다.
- files로 이름을 만들고 transferTo(New File("파일경로"))로 파일을 만들어주고 저장해 줍니다~
Postman 요청 보내기
- 처음으로 쓰는 글이다 보니 부족한 게 많지만 앞으로 열심히 블로그를 작성해 보려고요 ㅎ
'Spring Boot' 카테고리의 다른 글
Spring Boot + Redis 적용 (2) | 2022.03.22 |
---|---|
JUnit5 Test Code 작성 (0) | 2021.12.17 |
Spring Boot 프로젝트 생성하기 (0) | 2021.06.27 |
롬복(Lombock) 어노테이션 (0) | 2021.05.06 |
Vue.js ,Springboot 로 구현하는 다중 파일 업로드 심화 (0) | 2021.05.04 |
댓글