我正在使用标准的Zend Youtube库将视频上传到Youtube。它运行良好,但我需要上传器才能正常工作。
我试图实现它,但我总是得到: 来自youtube上传网址的 302发现响应, 400缺少令牌已发送到我的脚本
创建上传者的方法
public static function showUploadForm($presenter, $id, $name, $comment) {
$yt = self::getYt(); // these are the account settings
// create a new VideoEntry object
$myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();
$myVideoEntry->setVideoTitle($name);
$myVideoEntry->setVideoDescription($comment);
// The category must be a valid YouTube category!
$myVideoEntry->setVideoCategory('People');
// Set keywords. Please note that this must be a comma-separated string
// and that individual keywords cannot contain whitespace
$myVideoEntry->SetVideoTags('hockey');
$tokenHandlerUrl = 'http://gdata.youtube.com/action/GetUploadToken';
$tokenArray = $yt->getFormUploadToken($myVideoEntry, $tokenHandlerUrl);
$tokenValue = $tokenArray['token'];
$postUrl = $tokenArray['url'];
// place to redirect user after upload
$nextUrl = $presenter->link('//User:videoUploaded', array('id' => $id)); //framework action
// build the form
$form = '<form id="youtubeUploader" class="ajaxSetVideoData" action="' . $postUrl . '?nexturl=' . $nextUrl .
'" method="post" enctype="multipart/form-data">' .
'<input id="file" name="file" type="file" />' .
'<input name="submit" type="submit" value="send" />' .
'<input name="token" type="hidden" value="' . $tokenValue . '"/>'.
'</form>' .
'<br />';
return $form;
}
提前多多感谢。
编辑:我发现只有输入“令牌”作为参数发送到youtube网址。
EDIT2 :AJAX和文件上传存在问题。有了这个插件,它正在工作: http://malsup.com/jquery/form/#code-samples
但是现在两个脚本中仍然会找到302 Found,但是URL中的“status”是200(第二行),这是正常的 - 视频也会上传。
答案 0 :(得分:1)
AJAX和文件上传存在问题。有了这个插件,它正在工作:
http://malsup.com/jquery/form/#code-samples
已解决:解决方案是您应该将IFRAME用作异步上传。看这里: