@den94ka

Как выполнить этот код на PHP?

Нашел пример кода на Python
Он загружает файлы на telegra.ph

Не получается его перенести на PHP. Постоянно выдает ошибку - No files passed.
Код на Python:
import requests


with open('/Users/python273/Desktop/123345.jpeg', 'rb') as f:
    print(
        requests.post(
            'https://telegra.ph/upload',
            files={'file': ('file', f, 'image/jpeg')}
        ).json()
    )


Мой код на PHP:
$imgFile = file_get_contents("ссылка на картинку");
$remoteData = array(
        'files' => array("file" => array('file', base64_encode($imgFile), 'image/jpeg'))
);

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://telegra.ph/upload');
curl_setopt($curl, CURLOPT_TIMEOUT, 300);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $remoteData);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
  • Вопрос задан
  • 494 просмотра
Пригласить эксперта
Ответы на вопрос 2
SerJook
@SerJook
кодер
$imgFile  = curl_file_create("d:/new-icon.png");
$remoteData = array(
    'file' => $imgFile
);
Ответ написан
Комментировать
@rPman
Есть хороший инструмент, помогающий в симуляции действия браузера - консоль разработчика в браузере.

Нажмите F12, выберите закладку network, включите логирование (страница перегрузится), отправьте файл на сайт (что там у вас форма постинга сообщений?) и старательно изучите лог network, на нужной записи нажмите правую кнопку и выберите в меню Copy - Copy as curl.

Вы получите командную строку curl в которой забиты все необходимые параметры, перенесите их в php один в один и уже дальше от этого отталкивайтесь (удаляйте не нужные, правьте куки и т.п.).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы