mirror of
https://github.com/curl/curl.git
synced 2026-08-26 02:03:32 +03:00
mime: use percent-escaping for multipart form field and file names
Until now, form field and file names where escaped using the backslash-escaping algorithm defined for multipart mails. This commit replaces this with the percent-escaping method for URLs. As this may introduce incompatibilities with server-side applications, a new libcurl option CURLOPT_MIME_OPTIONS with bitmask CURLMIMEOPT_FORMESCAPE is introduced to revert to legacy use of backslash-escaping. This is controlled by new cli tool option --form-escape. New tests and documentation are provided for this feature. Reported by: Ryan Sleevi Fixes #7789 Closes #7805
This commit is contained in:
parent
6ec28eb687
commit
b20b364764
23 changed files with 463 additions and 30 deletions
|
|
@ -47,7 +47,7 @@ POST /we/want/%TESTNUMBER HTTP/1.1
|
|||
Host: %HOSTIP:%HTTPPORT
|
||||
User-Agent: curl/%VERSION
|
||||
Accept: */*
|
||||
Content-Length: 1184
|
||||
Content-Length: 1180
|
||||
Content-Type: multipart/form-data; boundary=----------------------------24e78000bd32
|
||||
|
||||
------------------------------24e78000bd32
|
||||
|
|
@ -85,7 +85,7 @@ bar
|
|||
foo
|
||||
|
||||
------------------------------24e78000bd32
|
||||
Content-Disposition: form-data; name="file3"; filename="f\\\\ak\\\\er,\\an\\d;.t\"xt"
|
||||
Content-Disposition: form-data; name="file3"; filename="f\\ak\\er,\an\d;.t%22xt"
|
||||
Content-Type: mo/foo
|
||||
|
||||
foo bar
|
||||
|
|
@ -94,7 +94,7 @@ bar
|
|||
foo
|
||||
|
||||
------------------------------24e78000bd32
|
||||
Content-Disposition: form-data; name="file4"; filename="A\\AA\"\"\\\"ZZZ"
|
||||
Content-Disposition: form-data; name="file4"; filename="A\AA%22%22\%22ZZZ"
|
||||
Content-Type: text/plain
|
||||
|
||||
foo bar
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue