설정
root-context.xml
<!-- 파일업로드 설정 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.support.StandardServletMultipartResolver">
</bean>
"POST" 메서드와 "multipart/form-data" 인코딩을 사용하여 HTML 형식에서 Spring 백엔드로 파일을 업로드한 다음 MyBatis를 사용하여 파일을 BLOB으로 MySQL에 저장
1. HTML 양식에서 입력 유형 "file"을 사용하여 사용자가 업로드할 파일을 선택할 수 있도록 합니다.
<form method="post" action="/upload" enctype="multipart/form-data">
<input type="file" name="file">
<button type="submit">Upload</button>
</form>
2. Spring 컨트롤러에서 @PostMapping 어노테이션을 사용하여 폼 제출하고 업로드된 파일을 MultipartFile 객체로 수신합니다.
@PostMapping("/upload")
public String handleFileUpload(@RequestParam("file") MultipartFile file) {
// code to handle the file upload
byte[] fileBytes = file.getBytes();
// mapper -> SQL (.xml)
+++ code +++
}
3. MyBatis를 사용하여 insert 문으로 Mapper XML 파일을 정의하여 바이트 배열을 BLOB로 MySQL 데이터베이스에 삽입합니다.
<insert id="insertFile" parameterType="byte[]">
INSERT INTO my_table (file_blob) VALUES (#{value})
</insert>
설정
Spring 구성 파일(예: application.properties 또는 application.yml)에서 multipart resolver bean을 구성합니다.
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
서버의 멀티파트 구성이 올바르게 설정되었는지 확인하십시오. 이는 서버의 web.xml 파일에 다음 구성을 추가하여 수행할 수 있습니다.
<multipart-config>
<max-file-size>20971520</max-file-size>
<max-request-size>41943040</max-request-size>
<file-size-threshold>1048576</file-size-threshold>
</multipart-config>
root-context.xml
<!-- 파일업로드 설정 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.support.StandardServletMultipartResolver">
</bean>
728x90
반응형
'Spring Framework' 카테고리의 다른 글
Ubuntu 22.04 + Tomcat8.5 WAR 파일 배포, 로그인 시 서버 자동 실행 + 백그라운드 실행 (0) | 2023.05.02 |
---|---|
1-2 Contoller Return 종류 (0) | 2023.04.07 |
JSP에서 컨트롤러로 값 넘기기. (0) | 2023.03.14 |
Lombok API (0) | 2023.03.12 |