spring 파일 업로드

조예빈·2024년 5월 21일
0

Spring

목록 보기
16/19
  • jar 추가, bean 설정
  • 컨트롤러에서 파라미터로 첨부 파일을 받아서 처리해 주어야 함

https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload/1.5
pom.xml에 이 의존성을 추가해주면 됨. 나는 가장 최신 버전을 추가했음

<!-- fileupload -->
		<dependency>
			<groupId>commons-fileupload</groupId>
			<artifactId>commons-fileupload</artifactId>
			<version>1.5</version>
		</dependency>
MvcConfig.java에 추가

	// 파일 업로드
	@Bean
	public CommonsMultipartResolver multipart() {
		CommonsMultipartResolver multipart = new CommonsMultipartResolver();

		// 파일 size(용량)
		multipart.setMaxUploadSize(1024 * 1024 * 5);
		multipart.setDefaultEncoding("utf-8");
		return multipart;
	}

위의 코드대로 실행했더니 multipart()라는 이름을 다른 곳에서 bean으로 사용하기 때문에 아예 동작하지 않았음. 그러므로 다음과 같이 bean의 이름을 이미 정해져 있는 이름인 multipartResolver()로 바꾸어 주어야 함.

// 파일 업로드
	@Bean
	public CommonsMultipartResolver multipartResolver() { 
		CommonsMultipartResolver multipart = new CommonsMultipartResolver();

		// 파일 size(용량)
		multipart.setMaxUploadSize(1024 * 1024 * 5);
		multipart.setDefaultEncoding("utf-8");
		return multipart;
	}

파일명을 한글로 하려면 인코딩해 주어야 함
이후 인코딩된 원본파일명을 다시 UTF-8로, ISO-8859-1로 인코딩 해 주어야 함

	fileName_org = new String(fileName_org.getBytes("UTF-8"), "ISO-8859-1");
profile
컴퓨터가 이해하는 코드는 바보도 작성할 수 있다. 사람이 이해하도록 작성하는 프로그래머가 진정한 실력자다. -마틴 파울러

0개의 댓글