php curl загрузка файла в request payload

Подскажите, как передать файл в request payload. Делаю, так сказать api, для чужого сайта. Нужно, чтобы по быстрому выполнять определенные задачи.

  1. Отслеживаю запрос в хром инспекторе
  2. Выбираю фотку и нажимаю кнопку "Загрузить".
  3. В запросах появляется файл upload.php

Мониторю весь запрос, и выясняю. Что файл, каким-то методом передается просто в request payload. В виде иероглифов и тд. Я как понял, сам этот request payload - это "body" пост запроса. введите сюда описание изображения Справа снизу. И как мне, через curl отправить подобный запрос? Пробовал curl_file_create(__DIR__.'\1.jpg', 'image/jpeg'); Не помогает, функция возвращает массив типо object(CURLFile)#1 (3) { ["name"]=> string(43) "H:\xampp\htdocs\core\scr\media\1.jpg" ["mime"]=> string(10) "image/jpeg" ["postname"]=> string(0) "" }

Что это за иероглифы и как картинку конвертировать в это? (Наврятли, что там тупо читается файл как текстовый)


Ответы (1 шт):

Автор решения: KoVadim

То, что Вы называете "иероглифами" и есть бинарное представление картинки, просто отображаются только читаемые символы. И там явно видно, что это jpeg.

скорее всего Вам нужны такие параметры для curl

вначале уточним, что посылаем JPEG картинку (такое же и по скриншоту)

curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: image/jpeg"));

а также укажем файл, который хочется отправить

$params = array('name'=>'@D:\myfile.jpg;type=image/jpeg');
curl_setopt($curl, CURLOPT_POSTFIELDS, $params);

Второй способ найти ответ. В хроме на вкладке networks можно кликнуть правой кнопкой мыши по запросу и там найти "скопировать как курл запрос. А потом воспользоваться любым сервисом вида https://incarnate.github.io/curl-to-php/ и получить готовый (или почти готовый) код к использованию.

→ Ссылка