Поэтому я работаю над скриптом, который будет загружать видео на сервер через интерфейс RESTful. В документации мне сообщается, что я должен передать данные (включая бинарный видеофайл) как часть запроса POST. Я знаю, как установить мои переменные POST, но я не уверен, как делать двоичные данные. API говорит, что у меня должно быть поле под названием «media», и оно должно содержать необработанные видеоданные.
Итак, скажем, у меня есть видео под названием «video1.mp4», и я хочу включить его содержимое в свою переменную POST для «media». Как я могу это сделать?
Благодаря!
Я не знаю, как вы общаетесь с API, но я возьму cURL для этого примера. Для отправки файлов вы используете опцию CURLOPT_POSTFIELDS
:
CURLOPT_POSTFIELDS
Полные данные для отправки в HTTP-режиме «POST». Чтобы опубликовать файл, добавьте имя файла с помощью @ и используйте полный путь. Это может быть либо передано как строка с urlencoded, как «para1 = val1 & para2 = val2 & …», или как массив с именем поля в качестве ключа и данных поля как значение. Если значением является массив, заголовок Content-Type будет установлен в multipart / form-data.
Пример ниже на странице:
$ch = curl_init(); $data = array('name' => 'Foo', 'media' => '@/home/user/test.png'); curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_exec($ch);