설명
Spring Boot는 파일 업로드를 처리하는 기본 기능을 내장하고 있기 때문에, DEXTUploadNJ를 사용하려면 Spring Boot의 파일 업로드 기능을 비활성해야 한다.
Spring Boot의 파일 업로드를 기능을 비활성화 하는 방법은 두 가지이다.
-
application.properties 파일에서 비활성
application.properties 파일을 열고 아래와 같이 설정한다.
spring.servlet.multipart.enabled=false
-
MultipartAutoConfiguration 배제
다음과 같이 MultipartAutoConfiguration을 배제한다.
@SpringBootApplication(exclude = {MultipartAutoConfiguration.class}) public class Application { public static void main(String[] args) { ... } }
기본 기능을 사용하지 않도록 설정했다면, DEXTUploadNJ를 설정할 차례이다. 샘플은 DEXTUploadX5와 DEXTUploadNJ 두 제품을 연동하여 대용량 파일 업로드 기능까지 처리를 하고 있기 때문에 DEXTUploadNJSpringExtensionUploadFilter를 사용해야 한다. DEXTUploadNJSpringExtensionUploadFilter은 대용량 파일 업로드 및 일반 파일 업로드까지 모두 처리가 가능하다.
샘플에서는 SampleConfiguration에서 다음과 같이 필터를 설정하였다.
@Bean
FilterRegistrationBean<DEXTUploadNJSpringExtensionUploadFilter> filterRegistrationBean(ServletContext context) {
FilterRegistrationBean<DEXTUploadNJSpringExtensionUploadFilter> fb = new FilterRegistrationBean<DEXTUploadNJSpringExtensionUploadFilter>();
fb.addInitParameter("tempRepository", context.getRealPath("/files/temp"));
fb.addInitParameter("defaultRepository", context.getRealPath("/files/store"));
fb.addInitParameter("autoMakingDirectory", "true");
fb.addInitParameter("enableCleaner", "true");
fb.addInitParameter("whiteExtension", "jpg,gif,png,doc,xls,ppt,docx,xlsx,pptx,pdf,txt,zip,hwp,mp4");
fb.addInitParameter("licenseFilePath", context.getRealPath("/license/DEXTUploadNJ.config"));
fb.setFilter(new DEXTUploadNJSpringExtensionUploadFilter());
fb.setDispatcherTypes(DispatcherType.REQUEST);
fb.addUrlPatterns(
"/upload-files",
"/upload-extension");
return fb;
}