Загрузка изображений в PHP с помощью CURL

#file-upload #php-curl

Вопрос:

Я пытаюсь загрузить изображение с помощью cURL, сервер всегда возвращает код ошибки 400.

СООБЩЕНИЕ https://example.com/imageUpload.php
Содержание-Длина: 5382748
Агент пользователя: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, как Геккон) Chrome/91.0.4472.106 Safari/537.36
Тип содержимого: составные/данные формы; граница=--- - WebKitFormBoundary5sU4eDAug7NgKhAv
Происхождение: https://example.com
Референт: https://example.com/

------webkitformboundary5su4edaug7nghav
Расположение содержимого: данные формы; имя="файл1"; имя файла="снимок экрана.png"
Тип содержимого: изображение/png

{Файлы rawcontent находятся здесь}

Вот что я сделал, я что-то упустил?

 $fileName = 'screen-capture.png';
$fileSize = filesize($fileName);
$data = array(
        "file1" => "@$fileName"
);
$headers = array(
    'Content-Type:multipart/form-data',
    'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36',
    'Origin: https://example.com',
    'Referer: https://example.com/',
    'Content-Length: ' . $fileSize
);
$ch = curl_init('https://example.com/imageUpload.php');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$ret = curl_exec($ch);
curl_close($ch);
print_r($ret);