jsp - jsp中文件上传的问题

标签 jsp servlets file-upload

我想使用 commons-fileupload-1.2.2 将 doc 文件上传到 servlet。

我在前端使用此代码:

<form action="fileuploader" method="post" enctype="multipart/form-data">
<br>File : <input type="file" name="uploadedFile">
<br><input type="submit">

并在 servlet 中使用此代码:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    boolean isMultipart = ServletFileUpload.isMultipartContent(request);
}

但是系统给了我一个这个错误

SEVERE: Servlet.service() for servlet FileUploaderServlet threw exception
java.lang.ClassNotFoundException: org.apache.commons.fileupload.servlet.ServletFileUpload
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    at org.jspFileUploader.fileUploader.FileUploaderServlet.doPost(FileUploaderServlet.java:31)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Unknown Source)

我认为问题出在这一行:

boolean isMultipart = ServletFileUpload.isMultipartContent(request);

请帮我解决这个问题

最佳答案

您需要将commons-fileupload.jarcommons-io.jar文件拖放到/WEB-INF/lib文件夹中你的网络应用程序项目。该文件夹最终成为 webapp 的运行时类路径的一部分。请注意,在像 Eclipse/Netbeans/IntelliJ 这样的不错的 IDE 中,您不需要之后需要摆弄构建路径属性。 IDE 完全知道 /WEB-INF/lib 中的库将成为运行时类路径的一部分,因此它会自动将其添加到构建路径中。

关于jsp - jsp中文件上传的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7376364/

相关文章:

xml - 理解 xml 文件在 Web 应用程序中的重要性的问题

java - 如何删除tomcat jsp中的 session ?

java - 无法在 eclipse 中将数据从 servlet 发送到 jsp 页面。怎么解决这个问题?

PHP:上传文件没有文件上传控件

java - session 参数始终为空

java - 如何使用 jquery slider 过滤 100 条记录,而无需每次都访问服务器?

tomcat - webapp升级使用war文件是否会覆盖之前web app的所有内容

java - 显示错误未找到主类

PHP Image/Fileupload : crossbrowser, 多个文件,拖放?

file-upload - 是否可以将环境变量 "GOOGLE_APPLICATION_CREDENTIALS"设置为 Flowground 中上传的 JWT 文件?