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