On 2012-05-02 13:05, Evan Jones wrote:
On May 1, 2012, at 22:38 , Ashley Sheridan wrote:
The Webkit method looks the better of the two with regards to how
server-side languages might interpret it, but it would need work to
ensure everything that should be escaped is, and that everything that is
unescaped on the server should be and is done so correctly.

The problem is that currently I am unable to correctly "round trip" an uploaded 
file name. I would like users to upload a file, and be able to later download the file 
with the *exact same* file name. If you follow the specifications, this is not possible. 
Firefox is closer to the MIME RFCs (which specifies backslash quoting in quoted-strings), 
but apparently that will break IE6, 7, and 8:

https://bugs.webkit.org/show_bug.cgi?id=62107
http://java.net/jira/browse/JERSEY-759

Webkit's %-escaping behaviour is *not* part of the referenced MIME RFCs (which specifies either backslash 
quoting in quoted-strings, base64 encoding, or %-escaping in special "filename*=" arguments). Thus, 
if this is the "right answer," it should be specified somewhere. I'm assuming that this needs to be 
in the HTML5 spec, since HTTP calls this the "body" of the the POST and declares that it is outside 
the HTTP specification.

Webkit's escaping is also flawed (see bug 62107 above). Files with that contain 
%-escapes (eg. my%22file.txt, admittedly very rare) will get mangled, because there 
is no difference between my%22file.txt and my"file.txt.

Currently, I need to detect the browser in order to figure out what kind of 
unescaping to apply to the file name, and even then in some cases I can't 
figure out what the right file name is. Webkit claims this is a specification 
bug, so I'm hoping someone here might tell me if this is the case, and if so 
where can I file bugs, create test cases, etc?

Evan

--
http://evanjones.ca/

I did spend a considerable amount of time with Content-Disposition, the *response* header field (resulting in RFC 6266 and <http://greenbytes.de/tech/tc2231/>).

However, this has little to do with the representation in form uploads. If browser implementers want to try something new that will not affect the old code paths, supporting the encoding defined in RFC 5987 might be the right thing to do (yes, it's ugly, but it's unambiguous).

Best regards, Julian

Reply via email to