Hi~ Summers!!

[spring] 첨부파일 업로드 용량(사이즈) 제한 본문

개발/JSP&HTML

[spring] 첨부파일 업로드 용량(사이즈) 제한

eNaNII 2014. 6. 16. 15:45

스프링에서 파일 업로드시 업로드되는 파일을 크기를 appilicationContext.xml 설정파일로서 제한 할 수 있다.

<!-- Multipart Resolaver -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="maxUploadSize">
        <value>50000000</value>    <!-- 50MB -->
    </property>
    <property name="defaultEncoding" value="UTF-8"/>
</bean>


위와 같이 maxUploadSize 를 설정하므로서 제한이 가능하며, 이 제한을 넘어가면 org.springframework.web.multipart.MaxUploadSizeExceededException 이 발생된다. 이때의 문제는 해당에러가 스프링단에서 발생되므로 해당 내용이 Controller까지 전달되지 못하며, 그로인해 Exception을 제어 할 수 없게 된다.

이 문제는 아래와 같이 exceptionResolver를 설정해주므로서 제어 가능하다.

<bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
    <property name="exceptionMappings">
        <props>
            <prop key="org.springframework.web.multipart.MaxUploadSizeExceededException">/error/attachFileOverSizeErr</prop>
        </props>
    </property>
</bean>


에러 메시지는 아래와 같이 간단히 처리해주면 된다.

<%-- attachFileOverSizeErr.jsp --%>

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script>
alert('첨부파일 사이즈는 50M를 넘길 수 없습니다.');
</script>
</head>

</html>


Comments