我使用以下代码将视频上传到用户墙:
if( isset($_POST['submitVideo']) ) {
$img = $_FILES['source']['name'];
$ret_obj = $facebook->api('/me/videos', 'POST', array(
'source' => '@' . $img,
'title' => "This is just a test",
'description' => 'test9000',
'privacy' => json_encode(array( 'value' => 'EVERYONE' )),
)
);
echo '<pre>Video ID: ' . $ret_obj['id'] . '</pre>';
}
表单如下所示:
<form target="uploadTarget" enctype="multipart/form-data" method="POST">
<input name="source" type="file">
<input type="submit" value="Upload" name="submitVideo" />
</form>
我的问题在于图像的来源。使用它是否正确:
$img = $_FILES['source']['name'];
应该是什么来源?我从本地计算机上传文件。
的编辑:
如果我对同一表单使用以下模式并使用此“$ post_url”作为操作,该怎么办?
$post_url = "https://graph-video.facebook.com/me/videos?"
. "title=" . $video_title. "&description=" . $video_desc
. "&access_token=". $access_token;
有效。但是转到这个“$ post_url”页面,它显示了上传文件的ID。如何将该ID用于我的数据库?
答案 0 :(得分:0)
使用它是否正确:
$img = $_FILES['source']['name'];
不,正如http://www.php.net/manual/en/features.file-upload.post-method.php告诉您的那样,这是“客户端计算机上文件的原始名称。” - 这当然不是您想要的。
您想要使用客户端上传到服务器后临时存储在服务器上的文件名:
$ _ FILES ['userfile'] ['tmp_name']
上传文件存储在服务器上的文件的临时文件名。
如果这不起作用(文件上传的临时目录可能无法直接访问cURL [PHP SDK内部使用]),则必须首先使用move_uploaded_file
来存储文件您服务器上的另一个位置。