Search code examples
javaformsservletsapache-commons-fileuploadenctype

Identify html form or its encoding (text or file) in servlet


How do I recognize in a servlet whether the request sent using HTML form has enctype multipart/form-data or the default application/x-www-form-urlencoded?

Alternatively: is there any other way to recognize which form was used? request.getParameter("some_param") works only with default encoding.


Solution

  • I'm using Apache Commons FileUpload for multipart, but wasn't sure how to switch between handling multipart and default forms

    Use Apache Commons FileUpload's own ServletFileUpload#isMultipartContent() to check it.

    if (ServletFileUpload.isMultipartContent(request)) {
        // Parse with FileUpload.
    }
    else {
        // Use normal getParameter().
    }
    

    See also: