php curl загрузка файла в request payload
Подскажите, как передать файл в request payload. Делаю, так сказать api, для чужого сайта. Нужно, чтобы по быстрому выполнять определенные задачи.
- Отслеживаю запрос в хром инспекторе
- Выбираю фотку и нажимаю кнопку "Загрузить".
- В запросах появляется файл 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 шт):
То, что Вы называете "иероглифами" и есть бинарное представление картинки, просто отображаются только читаемые символы. И там явно видно, что это 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/ и получить готовый (или почти готовый) код к использованию.