Как отправить файл с помощью cURL exec PHP - PullRequest
0 голосов
/ 25 октября 2019

У меня есть это приложение, где с веб-страницы пользователь загружает файл, и мне нужно, чтобы приложение отправляло этот файл другому API.

Теперь мне все равно, чтопроизойдет или какой ответ я получу после выполнения запроса cURL , потому что это занимает слишком много времени для обработки. я только уведомляю пользователя, что его / ее файл был загружен правильно.

мой код:

 curl_setopt_array(
                $ch,
                [
                    CURLOPT_VERBOSE=>true,
                    CURLOPT_RETURNTRANSFER => true,
                    CURLOPT_URL            => $this->endpoint,
                    CURLOPT_POSTFIELDS     => $this->payload,
                ]
            );
            curl_exec($ch);

$this->endpoint содержит URL-адрес и $this->payload полученный файл. Из API, который я отправил этот файл, я получаю сообщение, что файл не был отправлен или файл в неправильном формате. Я предполагаю, что я не отправляю файл правильно при выполнении команды. Как я могу отправить этот файл?

1 Ответ

2 голосов
/ 26 октября 2019

Используйте встроенные функции curl.

$ch = curl_init($this->endpoint);
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => json_encode($this->payload),
    CURLOPT_HTTPHEADER => [
        "Content-type: application/json",
        "Accept: application/json"
    ]
]);

if (curl_exec($ch)) {
    return [
        'code' => 200,
        'success' => True,
        'message' => curl_getinfo($cmd),
    ];
} else {
    return [
        'code' => curl_getinfo($ch, CURLINFO_RESPONSE_CODE),
        'success' => false,
        'message' => "Curl failed"
    ];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...