Fix #79013: Content-Length missing when posting a curlFile with curl #5219
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Unfortunately, some Webservers (e.g. IIS) do not implement the (F)CGI
specifications correctly wrt. chunked uploads (i.e. Transfer-encoding:
chunked), but instead pass
-1
as CONTENT_LENGTH to the CGIapplication. However, our (F)CFI SAPIs (i.e. cgi and cgi-fcgi) do not
support this.
Therefore we do no longer do chunked uploads unless ext/curl has been
compiled with
CURL_FILE_AS_STREAM
for best interoperability. We onlymake minimal modifications to the code for simplicity, and also because
we consider this commit a mere work-around for broken (F)CGI servers/
applications which have to deal with HTTP/1.1 requests (HTTP/2 and
later do no longer support Transfer-encoding: chunked, anyway).
Users who are sure that they upload CURLFiles to servers which support
chunked uploads are encouraged to build with
CURL_FILE_AS_STREAM
; weintroduce the PHP constant
CURL_FILE_AS_STREAM
to be able to retrievethis information during run-time.