Uploaded image for project: 'Wicket'
  1. Wicket
  2. WICKET-4934

DownloadLink uses wrong encoding for spaces/non-ASCII characters

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 6.4.0
    • 7.0.0-M1
    • wicket
    • IE7/8, FF 17.0.1, Chrome 23

    Description

      When downloading a file with spaces and non-ASCII characters in the filename using DownloadLink, all browsers I tested show a wrong filename in the file download dialog.

      For a file named Test 'ä'.txt, I got the following output from different browsers:
      IE: Test+'ä'.txt
      FF: Test+%27%C3%A4%27.txt
      Chrome: Test+%27ä%27.txt

      I have attached a patch that fixes the issue for me. The problem is that
      a) the used URL encoding is wrong. PATH encoding, not QUERY encoding is required
      b) only IE needs the filename to be encoded, other browsers seem to work with the original name

      See e.g. http://stackoverflow.com/questions/93551/how-to-encode-the-filename-parameter-of-content-disposition-header-in-http for a discussion of the underlying issue.

      Note: I do not believe the attached patch is the optimal fix for this issue. I would prefer removing the encoding handling from DownloadLink and putting it into AbstractResource.setResponseHeaders(), so other components using attachments benefit, too.

      Attachments

        1. WICKET-4934.patch
          4 kB
          Sven Meier
        2. DownloadLink.patch
          1 kB
          Matthias Piepkorn

        Issue Links

          Activity

            People

              mgrigorov Martin Tzvetanov Grigorov
              mpiepkorn Matthias Piepkorn
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: