RESTful загрузка файла в PHP - PullRequest
3 голосов
/ 07 июля 2010

Итак, я работаю над сценарием, который будет загружать видео на сервер через интерфейс RESTful.Документация говорит мне, что я должен передать данные (включая двоичный видеофайл) как часть запроса POST.Я знаю, как установить мои переменные POST, но я не уверен, как сделать двоичные данные.API говорит, что у меня должно быть поле с именем 'media', и оно должно содержать необработанные видеоданные.

Итак, допустим, у меня есть видео под названием video1.mp4, и я хочу включить его содержимое в свойпеременная media 'POST.Как я могу это сделать?

Спасибо!

1 Ответ

5 голосов
/ 07 июля 2010

Я не знаю, как вы общаетесь с API, но для этого примера я возьму cURL.Для отправки файлов используется опция CURLOPT_POSTFIELDS:

CURLOPT_POSTFIELDS
Полные данные для отправки в HTTP-операции «POST».Чтобы опубликовать файл, добавьте @ к имени файла и используйте полный путь.Это может быть либо передано в виде строки в кодировке urlen, например, 'para1 = val1¶2 = 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...