With java servlet 3.0 file upload, 如何获取 max-file-size 值
With java servlet 3.0 file upload, how to get max-file-size value
我正在使用 servlet 3 api 在 tomcat 7 中上传文件。
我正在 web.xml.
中设置
如何在我的 java 代码中获取最大文件大小的值,以便告诉用户最大文件大小是多少?
我已在 api 中搜索 Servlet、ServletContext、ServletConfig、ServletRegistration,但找不到任何内容。 multipart-config 值不在 initParameters 中。
我认为另一种提问方式是,如何获取 servlet 的 MultipartConfigElement 对象?同样,在搜索 api 之后,我找不到任何方法来检索它。
我找到了一种做我想做的事情的方法,尽管它使用反射来获取 servlet 配置的私有的、未记录的部分,因此远非理想 - 不能保证它会继续在 tomcat升级。但在 servlet 中,以下内容将获取 MultipartConfigElement(它具有 return 配置的各个位的方法):
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();
}
我正在使用 servlet 3 api 在 tomcat 7 中上传文件。
我正在 web.xml.
如何在我的 java 代码中获取最大文件大小的值,以便告诉用户最大文件大小是多少?
我已在 api 中搜索 Servlet、ServletContext、ServletConfig、ServletRegistration,但找不到任何内容。 multipart-config 值不在 initParameters 中。
我认为另一种提问方式是,如何获取 servlet 的 MultipartConfigElement 对象?同样,在搜索 api 之后,我找不到任何方法来检索它。
我找到了一种做我想做的事情的方法,尽管它使用反射来获取 servlet 配置的私有的、未记录的部分,因此远非理想 - 不能保证它会继续在 tomcat升级。但在 servlet 中,以下内容将获取 MultipartConfigElement(它具有 return 配置的各个位的方法):
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();
}