Uploaded image for project: 'Commons FileUpload'
  1. Commons FileUpload
  2. FILEUPLOAD-208

CLONE - [fileupload] Use the ServletRequest encoding as default

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.2.2
    • Fix Version/s: 1.3.1
    • Labels:
      None
    • Environment:

      All supported environments.

      Description

      The fileupload package operates on a ServletRequest to conveniently extract it's
      content. The ServletRequest.getCharacterEncoding() method "Returns the name of
      the character encoding used in the body of this request", and thus should be
      used as a default by the fileupload processing as well.

      Further, whether from the servlet request or an explicit set on the FileUpload
      instance, the encoding should propagate to the FileItem (again by default,
      unless it's overridden by a part content type header or explicit set).

      Currently, in order to have a UTF-8 request properly parsed, one must first call

      request.setCharacterEncoding("UTF-8")

      then call

      diskFileUpload.setHeaderEncoding("UTF-8")

      and finally use

      fileItem.getString("UTF-8")

      There's no reason for this duplicity - if the first is set, the rest should
      propagate by default, unless explicitly overridden. This is a source for bugs
      and unneeded extra work (it took quite a while to figure these out, after
      examining the source code - this work can be saved for other developers, after
      all, that's what this package is for!).

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                jochen@apache.org Jochen Wiedmann
                Reporter:
                fribeiro Fernando Ribeiro
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: