用java servlet 3.0文件上传,如何获取max-file-size值

时间:2017-04-19 11:36:33

标签: java tomcat file-upload servlet-3.0 multipartconfig

我正在使用servlet 3 api在tomcat 7中进行文件上传。
我正在设置< multipart-config>在web.xml中。

如何在java代码中访问max-file-size的值,以便告诉用户最大文件大小是什么?

我已经通过apis搜索Servlet,ServletContext,ServletConfig,ServletRegistration并且无法找到任何内容。 multipart-config值不在initParameters中。

我认为另一种问题是,如何获取servlet的MultipartConfigElement对象?再次,通过api的搜索,我无法找到任何方法来检索它。

1 个答案:

答案 0 :(得分:0)

我找到了一种方法来做我想要的,虽然它使用反射来获取servlet配置的私有的,未记录的部分,因此远非理想 - 不能保证它将继续在tomcat升级上工作。但是在servlet中,以下内容将获得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();
}