загрузить видео в DailyMotion с помощью GuzzleHttp

Я пытаюсь загрузить видео с помощью Laravel и GuzzleHttp в DailyMotion. Вот мой код:

$file = "3.mp4";
$fields["file"] = fopen($file, 'rb');
$res = $client->post($upload_url, [
'headers' => ['Content-Type' => 'multipart/form-data'],
$fields
]);

$data3 =  $res->getBody();
$response_upload_video = json_decode($data3,true);
echo "<br>Getting dm upload video response: ";
print_r($response_upload_video);

$upload_url является динамически генерируемым URL, передаваемым DailyMotion. После выполнения кода выше, я всегда получаю эту ошибку:

Production.ERROR: GuzzleHttp \ Exception \ ClientException:
Ошибка клиента:
СООБЩЕНИЕ
http://upload-02.sg1.dailymotion.com/upload?uuid=werewkrewrewrwer&уплотнение = pppppppppppppppp`привели
в ответе 400 Bad Request:
{«error»: «недопустимый диапазон содержимого», «seal»: «yyyyyyyyyyyyyyyyyy»}
в /home/vagrant/Code/svc-titus/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:111

Но я могу загрузить видео на тот же URL для загрузки, используя Postman, как показано ниже:
введите описание изображения здесь

0

Решение

я не думаю, что вам нужно указывать контент-заголовок, жадность решит его автоматически, когда вы предоставите ему ресурс, и путь к вашему видео здесь кажется проблематичным, если видео хранится в публичном каталоге, вам нужно использовать public_path или соответствующую вспомогательную функцию path получить свой физический путь
ниже должно работать в guzzle http: 6 проверка отправки файлов формы здесь
http://docs.guzzlephp.org/en/latest/quickstart.html#uploading-data

$file = "3.mp4";
$res = $client->post($upload_url, [
'multipart' => [
[
'name'     => 'file',
'contents' => fopen(base_path($file), 'r') // give absolute path using path helper function
]
]
]);

$data3 =  $res->getBody();
$response_upload_video = json_decode($data3,true);
echo "<br>Getting dm upload video response: ";
print_r($response_upload_video);
2

Другие решения

Других решений пока нет …