The code below is for servlet file-upload, I got it from a servlet tutorial but when I try to compile it, this error is thrown ->
UploadServlet.java:28: error: cannot access HttpServletRequest
isMultipart = ServletFileUpload.isMultipartContent(req);
^
class file for javax.servlet.http.HttpServletRequest not found
UploadServlet.java:49: error: no suitable method found for parseRequest(jakarta.servlet.http.HttpServletRequest)
List fileItems = upload.parseRequest(req);
^
method FileUploadBase.parseRequest(RequestContext) is not applicable
(argument mismatch; jakarta.servlet.http.HttpServletRequest cannot be converted to RequestContext)
method ServletFileUpload.parseRequest(javax.servlet.http.HttpServletRequest) is not applicable
(argument mismatch; jakarta.servlet.http.HttpServletRequest cannot be converted to javax.servlet.http.HttpServletRequest)
2 errors
package fileUpload;
import jakarta.servlet.*;
import jakarta.servlet.http.*;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.*;
import java.io.*;
import java.util.*;
public class UploadServlet extends HttpServlet {
private boolean isMultipart;
private String filePath;
private int maxFileSize=50 * 1024;
private int maxMemSize = 4 * 1024;
private File file;
@Override
public void init() throws ServletException {
filePath = getServletContext().getInitParameter("file-upload");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
isMultipart = ServletFileUpload.isMultipartContent(req);
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
if (!isMultipart){
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet Upload</title>");
out.println("<body>");
out.println("<p> No file Uploaded. </p>");
out.println("</body>");
out.println("</head>");
out.println("</html>");
return;
}
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(maxMemSize);
factory.setRepository(new File("/user/temp"));
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(maxFileSize);
try {
List fileItems = upload.parseRequest(req);
Iterator i = fileItems.iterator();
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet Upload</title>");
out.println("<body>");
while (i.hasNext()){
FileItem fi = (FileItem) i.next();
if (!fi.isFormField()){
String fieldName = fi.getFieldName();
String fileName = fi.getName();
String contentType = fi.getContentType();
boolean isInMemory = fi.isInMemory();
long sizeInByte = fi.getSize();
if (fileName.lastIndexOf("\\") >= 0){
file = new File(filePath + fileName.substring(fileName.lastIndexOf("\\")));
}else {
file = new File(filePath + fileName.substring(fileName.lastIndexOf("\\")+1));
}
fi.write(file);
out.println("Uplaoded FileName "+ fileName+"<br/>");
}
}
out.println("</body>");
out.println("</html>");
}
catch (FileUploadException e) { e.printStackTrace(); }
catch (Exception e){e.printStackTrace();}
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
throw new ServletException("Get method used with "+getClass().getName()+": POST method required.");
}
}
I have added all the following jar files in the classpath
- commons-fileupload-1.4.jar
- commons-io-2.11.0.jar
- jsp-api.jar
- servlet-api.jar
I have also tried a different example from a different tutorial but still I got the same error. I have did all I can in four days but still I have failed. Please, may someone help me.