반응형

설정

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
반응형

+ Recent posts