#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);