所以我正在开发一个脚本,它将通过RESTful接口将视频上传到服务器。文档告诉我,我应该将数据(包括二进制视频文件)作为POST请求的一部分传递。我知道如何设置我的POST变量,但我不知道如何做二进制数据。 API说我应该有一个名为'media'的字段,它应该包含原始视频数据。
所以,假设我有一个名为'video1.mp4'的视频,我希望将其内容包含在我的'media'POST变量中。我怎么能这样做?
谢谢!
答案 0 :(得分:5)
我不知道你是如何与API通信的,但我会假设这个例子是cURL。要发送文件,请使用CURLOPT_POSTFIELDS
选项:
<强> CURLOPT_POSTFIELDS 强>
要在HTTP“POST”操作中发布的完整数据。要发布文件,请在文件前加上@并使用完整路径。这可以作为urlencoded字符串传递,如'para1 = val1&amp; para2 = val2&amp; ...',或者作为一个数组,字段名称作为键,字段数据作为值。如果value是数组,则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);