2017-04-19 5 views
0

서블릿 3 API를 사용하여 tomcat 7에서 파일 업로드를하고 있습니다.
web.xml에 < 멀티 파트 구성 >을 설정 중입니다.
자바 서블릿 3.0 파일 업로드, 최대 파일 크기 값을 얻는 방법

내 Java 코드에서 max-file-size 값에 액세스 할 수있는 방법을 알려면 최대 파일 크기를 사용자에게 알릴 수 있습니까?

Servlet, ServletContext, ServletConfig, ServletRegistration에 대한 api를 통해 trawled 했으므로 아무 것도 찾을 수 없습니다. multipart-config 값은 initParameters 사이에 없습니다.

이 질문을하는 또 다른 방법은 서블릿 용 MultipartConfigElement 객체를 어떻게 잡을 수 있을까요? 다시, api 's를 통해 trawled, 나는 이것을 가져올 어떤 방법을 찾을 수 없습니다.

답변

0

서블릿 설정의 비공개, 문서화되지 않은 부분을 얻기 위해 리플렉션을 사용하기는하지만 내가 원하는 것을 수행하는 방법을 발견 했으므로 이상적인 것으로부터 멀리 떨어져 있습니다. 즉, Tomcat 업그레이드를 계속할 수는 없습니다. 그러나 서블릿 내에서 다음은 MultipartConfigElement (구성의 다양한 비트를 반환하는 메서드가 있음)를 가져옵니다.

ServletConfig scfig = getServletConfig(); 
MultipartConfigElement mce = null; 
try { 
    Field config = scfig.getClass().getDeclaredField("config"); 
    config.setAccessible(true); 
    mce = ((StandardWrapper)config.get(scfig)).getMultipartConfigElement(); 
} catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) { 
    e.printStackTrace(); 
}