1

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

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

我浏览了 Servlet、ServletContext、ServletConfig、ServletRegistration 的 api,但找不到任何东西。multipart-config 值不在 initParameters 中。

我想问这个问题的另一种方式是,我怎样才能获得 servlet 的 MultipartConfigElement 对象?再次,通过 api 的拖网,我找不到任何方法来检索它。

4

1 回答 1

1

我找到了一种做我想做的事情的方法,尽管它使用反射来获取 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();
}
于 2017-04-26T08:48:46.523 回答