I'm not quite sure what to say about how to reproduce. POST a file using PHP-cURL to a server that doesn't support chunked mode.
I'm using https://sandbox.zenodo.com, but this requires a free account and utilizing their API, which seems beyond the scope of what I should put in a comment. Here is a sample similar to what I'm doing, with url/token/file removed: ----------------- <?php $url = ''; $access_token = ''; $file = ''; $ch = curl_init($url); $options = [ CURLOPT_CUSTOMREQUEST => 'POST, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ 'Authorization: Bearer ' . $access_token, 'Content-Type: multipart/form-data', ], CURLOPT_SSL_VERIFYHOST => 2, CURLOPT_FOLLOWLOCATION => true, CURLOPT_POSTREDIR => 3, CURLINFO_HEADER_OUT => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,//this has no effect ]; $file = curl_file_create(realpath($file), null, basename($file)); $data = ['file' => $file, 'name' => basename($file)]; $options[CURLOPT_POSTFIELDS] = $data; curl_setopt_array($ch, $options); $response = curl_exec($ch); $curl_info = curl_getinfo($ch); $curl_error = curl_error($ch); curl_close($ch); This works in Ubuntu 18, but not Ubuntu 20. To make it work in 20 I have to additionally empty the Transfer-Enconding header and determine and set the Content-Length header. This should not be necessary: $options[CURLOPT_HTTPHEADER][] = "Transfer-Encoding: "; //not sure how to determine $size $options[CURLOPT_HTTPHEADER][] = "Content-Length: $size" -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1887826 Title: CURLFile POST missing Content-Length header To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/php7.4/+bug/1887826/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs