Servlets 使用servlet将文件上载到主机上的应用程序
我有一个文件要上传。。。它在我的服务器上工作,我上传到http://localhost:8084/TestAmazon 而且它是有效的。。。但我们将我的web应用程序部署到主机并上载文件,但它不起作用。。。请帮帮我Servlets 使用servlet将文件上载到主机上的应用程序,servlets,file-upload,image-upload,Servlets,File Upload,Image Upload,我有一个文件要上传。。。它在我的服务器上工作,我上传到http://localhost:8084/TestAmazon 而且它是有效的。。。但我们将我的web应用程序部署到主机并上载文件,但它不起作用。。。请帮帮我 您是否控制主机上的tomcat服务器?是的,我控制。我使用一个免费的主机openshiftMake确保Tomcat服务器使用的ServletAPI版本与您的应用程序相同。您能帮助我如何获取ServletAPI并对其进行更改吗。它在pom.xml中吗??servlet api通常由se
您是否控制主机上的tomcat服务器?是的,我控制。我使用一个免费的主机openshiftMake确保Tomcat服务器使用的ServletAPI版本与您的应用程序相同。您能帮助我如何获取ServletAPI并对其进行更改吗。它在pom.xml中吗??servlet api通常由servlet容器提供。在pom.xml中,应该为同一版本的servlet api声明一个条目,但将其设置为“提供”,以便它仅用于编译,而不用于部署。
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String relativeWebPath = "/image";
String absoluteFilePath = getServletContext().getRealPath(relativeWebPath);
if (ServletFileUpload.isMultipartContent(request)) {
try {
List<FileItem> multiparts = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
for (FileItem item : multiparts) {
if (!item.isFormField()) {
String name = new File(item.getName()).getName();
item.write(new File(absoluteFilePath + File.separator + name));
}
}
request.setAttribute("message", "File Uploaded Successfully");
} catch (Exception e) {
request.setAttribute("message", "File Upload Failed due to " + e);
}
} else {
request.setAttribute("message",
"Sorry this Servlet only handles file upload request");
}
request.getRequestDispatcher("result.jsp").forward(request, response);
}
exception
javax.servlet.ServletException: Servlet execution threw an exception
root cause
java.lang.NoSuchMethodError: org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload.parseRequest(Ljavax/servlet/http/HttpServletRequest;)Ljava/util/List;
sample.ProcessServlet.doPost(ProcessServlet.java:73)
javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)