Matthias Piepkorn created WICKET-4934:
-----------------------------------------

             Summary: DownloadLink uses wrong encoding for spaces/non-ASCII 
characters
                 Key: WICKET-4934
                 URL: https://issues.apache.org/jira/browse/WICKET-4934
             Project: Wicket
          Issue Type: Bug
          Components: wicket
    Affects Versions: 6.4.0
         Environment: IE7/8, FF 17.0.1, Chrome 23
            Reporter: Matthias Piepkorn
            Priority: Minor
         Attachments: DownloadLink.patch

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.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to