2010-07-07 70 views
3

因此,我正在研究一个脚本,该脚本将通过RESTful界面将视频上传到服务器。该文档告诉我,我应该将数据(包括二进制视频文件)作为POST请求的一部分。我知道如何设置我的POST变量,但我不知道如何执行二进制数据。该API说我应该有一个名为“媒体”的字段,它应该包含原始视频数据。在PHP中使用RESTful上传文件

假设我有一个名为'video1.mp4'的视频,我想将其内容包含在'media'POST变量中。我怎样才能做到这一点?

谢谢!

回答

5

我不知道你是如何与API沟通的,但我会假设cURL为这个例子。要发送的文件,您可以使用CURLOPT_POSTFIELDS选项:

CURLOPT_POSTFIELDS
完整数据的HTTP “POST” 操作来发布。要发布文件,请使用@预先指定文件名并使用完整路径。这可以作为urlencoded字符串传递,如'para1 = val1 & para2 = 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); 
+0

谢谢Deceze!这正是我所期待的! – 2010-07-07 06:55:30