怎样才能使用JSP / Servlet上传文件到服务器?我试过这个:
<form action="upload" method="post"> <input type="text" name="description" /> <input type="file" name="file" /> <input type="submit" /></form>但是,我只获取文件名,而不是文件内容。当我添加 enctype="multipart/form-data"到<form>,然后request.getParameter()返回null。
在研究期间,我偶然发现了Apache Common FileUpload。我试过这个:
FileItemFactory factory = new DiskFileItemFactory();ServletFileUpload upload = new ServletFileUpload(factory);List items = upload.parseRequest(request); // This line is where it died.不幸的是,servlet抛出了一个没有明确信息和原因的异常。这里是堆栈跟踪:
SEVERE: Servlet.service() for servlet UploadServlet threw exceptionjavax.servlet.ServletException: Servlet execution threw an exception at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:313) 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:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:637)相似问题