未为类型 Part 定义方法 getSubmittedFileName()
The method getSubmittedFileName() is undefined for the type Part
我正在尝试在 servlet 3.0> 中上传多个文件。我在 getSubmittedFileName() 方法中遇到错误。为什么会出现此错误?
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String description = request.getParameter("description"); // Retrieves
// <input
// type="text"
// name="description">
Part filePart = request.getPart("file"); // Retrieves <input type="file"
// name="file">
String fileName = Paths.get(filePart.getSubmittedFileName())
.getFileName().toString(); // MSIE fix.
InputStream fileContent = filePart.getInputStream();
// ... (do your job here)
}
我以前遇到过这个问题。
有人帮助我找到了这个问题的根源,所以这是我得到的解决方案:
在 Java EE 7 的 DOC 中,您可以看到自 Servlet 3.1 以来,已将 'Interface Part' 添加到其中的 getSubmittedFileName 方法,并且从 tomcat 网站您可以看到 Tomcat 7 实现了 Servlet 3.0,所以我需要从 Tomcat 7 升级到 Tomcat 8.0.x.
参考文献:
如果您使用的是 Servlet 3.0,则必须手动定义 getSubmittedFileName()
。
在this answer中向下滚动到“当你还没有使用 Servlet 3.1 时,手动获取提交的文件名”方法定义并根据您的需求。
如果像我这样的人来到这里 getSubmittedFileName()
空
for (Part filePart : request.getParts())
循环
然后就知道不是每个 Part
都有一个 FileName
属性 :)
我遇到过这个问题,
只需在 Maven pom.xml 文件中应用此依赖项...
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
我正在尝试在 servlet 3.0> 中上传多个文件。我在 getSubmittedFileName() 方法中遇到错误。为什么会出现此错误?
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String description = request.getParameter("description"); // Retrieves
// <input
// type="text"
// name="description">
Part filePart = request.getPart("file"); // Retrieves <input type="file"
// name="file">
String fileName = Paths.get(filePart.getSubmittedFileName())
.getFileName().toString(); // MSIE fix.
InputStream fileContent = filePart.getInputStream();
// ... (do your job here)
}
我以前遇到过这个问题。 有人帮助我找到了这个问题的根源,所以这是我得到的解决方案:
在 Java EE 7 的 DOC 中,您可以看到自 Servlet 3.1 以来,已将 'Interface Part' 添加到其中的 getSubmittedFileName 方法,并且从 tomcat 网站您可以看到 Tomcat 7 实现了 Servlet 3.0,所以我需要从 Tomcat 7 升级到 Tomcat 8.0.x.
参考文献:
如果您使用的是 Servlet 3.0,则必须手动定义 getSubmittedFileName()
。
在this answer中向下滚动到“当你还没有使用 Servlet 3.1 时,手动获取提交的文件名”方法定义并根据您的需求。
如果像我这样的人来到这里 getSubmittedFileName()
空
for (Part filePart : request.getParts())
循环
然后就知道不是每个 Part
都有一个 FileName
属性 :)
我遇到过这个问题, 只需在 Maven pom.xml 文件中应用此依赖项...
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>