IT/Spring

Spring 파일 업로드 경로 맵핑

iamhyeon 2024. 11. 21. 19:50

application.properties 와 MyWebConfig.java  설정 설명

 

application.properties

# 업로드 된 파일이 저장될 폴더 경로 ("/"로 끝나면 안됨)
# => 이 경로가 프로젝트 폴더 안에 존재하면 안됨
# [mac, linux 용]
# upload.dir=/Users/hyeon/upload
# [widows 용] => 드라이브 문자열 앞에 "/" 적용 필요
upload.dir=/C:/HYEON/upload

# 업로드 된 파일이 노출될 URL 경로 ("/" 로 끝나면 안됨)
# => "http://localhost:8080/files" 를 의미
# => "http://localhost:8080/files" 가 "upload.dir"에 명시한 폴더를 의미
upload.url=/files

 

MyWebConfig.java

@Configuration
@SuppressWarnings("null")
public class MyWebConfig implements WebMvcConfigurer {

	.........

    /** 업로드 된 파일이 저장될 경로 (application.properties로부터 읽어온다) */
    @Value("${upload.dir}")
    private String uploadDir;

    /** 업로드 된 파일이 노출될 URL 경로 (application.properties로부터 읽어온다) */
    @Value("${upload.url}")
    private String uploadUrl;


    /** 설정파일에 명시된 업로드 저장경로와 URL상의 경로를 맵핑 시킨다 */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler(String.format("%s/**", uploadUrl)).addResourceLocations(String.format("file://%s/", uploadDir));
    }    
}

 

리소스 핸들러 등록

addResourceHandlers 메서드

ResourceHandlerRegistry를 사용해 업로드된 파일의 URL 경로와 실제 파일 저장 경로를 맵핑한다

uploadUrl 경로로 접근하면 uploadDir 경로에 있는 파일을 제공하도록 설정한다

 

반응형

'IT > Spring' 카테고리의 다른 글

Thymeleaf  (0) 2024.11.26
MyBatisSystemException  (0) 2024.11.25
File Upload  (3) 2024.11.21
Interceptor  (0) 2024.10.23
Spring 프로젝트 구성  (0) 2024.10.16