proton ..
proton ..

Reputation: 43

Error in file uploading code

I am getting following error in jsp page for file upload code:

The method parseRequest(RequestContext) in the type FileUploadBase is not applicable for the arguments (HttpServletRequest)

error in the code:

List<FileItem> items = uploadHandler.parseRequest(request);

Upvotes: 1

Views: 5901

Answers (3)

seenukarthi
seenukarthi

Reputation: 8634

The parseRequest(RequestContext ctx) expects RequestContext instance as argument but the argument passed is instance of HttpServletRequest

Use ServletRequestContext to create a RequestContext instance as follows.

List<FileItem> items 
          = uploadHandler.parseRequest(new ServletRequestContext(request));

Upvotes: 8

Jasonw
Jasonw

Reputation: 5064

great answers above, but if you are upgrading to tomcat10 which naming change from javax to jakarta, commons-fileupload as of version 1.4 has not change the naming yet, but you can change to the custom class in tomcat10 instead! (LUCKY ME)

org.apache.commons.fileupload.ProgressListener          to org.apache.tomcat.util.http.fileupload.ProgressListener
org.apache.commons.fileupload.servlet.ServletFileUpload to org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload
org.apache.commons.fileupload.disk.DiskFileItemFactory  to org.apache.tomcat.util.http.fileupload.disk.DiskFileItemFactory

org.apache.commons.fileupload.FileItem                  to org.apache.tomcat.util.http.fileupload.FileItem

Upvotes: 1

zqcolor
zqcolor

Reputation: 330

I had same problem, then found my imports were wrong: the last one of them was using fileupload from sun, not from commons.fileupload. After I changed them all to commons.fileupload, the error disappeared:

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.servlet.ServletRequestContext;

Upvotes: 1

Related Questions