Edit: с информацией о том, что ваш realpath () возвращает false, мы можем предположить, что вы, вероятно, правильно настраиваете Zend Gdata и просто передаёте неверный файл.(): http://php.net/manual/en/function.realpath.php
Часть, которая имеет значение:
realpath() returns FALSE on failure, e.g. if the file does not exist.
Note:
The running script must have executable permissions on all directories in the hierarchy, otherwise realpath() will return FALSE.
Итак, на этом этапе я бы продолжил:
- Проверьте, что файлсуществует, и ваш URL правильный - возможно, попробуйте сначала использовать абсолютный URL для постепенного тестирования и наращивания до относительного
- Проверьте права доступа к файлу, убедитесь, что он исполняется всеми (755 разрешений Unix, ядумаю)
Удачи!
Zend Gdata Youtube Doc:
Загрузка видео может осуществляться одним из двух способов: либо путем загрузки видео напрямую, либо с помощьюотправка только метаданных видео и предоставление пользователю возможности загружать видео через HTML-форму.
Для прямой загрузки видео необходимо сначала создать новый объект »Zend_Gdata_YouTube_VideoEntry и спецификациюЕсли требуются некоторые метаданные.
Приведенный ниже код создает пустую »Zend_Gdata_YouTube_VideoEntry для загрузки.Затем объект Zend_Gdata_App_MediaFileSource используется для хранения фактического видеофайла.Под капотом объект »Zend_Gdata_YouTube_Extension_MediaGroup используется для хранения всех метаданных видео.$ UploadUrl - это место, где публикуется новая запись.Это можно указать либо с помощью $ userName текущего аутентифицированного пользователя, либо, альтернативно, вы можете просто использовать строку «default» для ссылки на текущего аутентифицированного пользователя.
$yt = new Zend_Gdata_YouTube($httpClient);
$myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();
$filesource = $yt->newMediaFileSource('mytestmovie.mov');
$filesource->setContentType('video/quicktime');
$filesource->setSlug('mytestmovie.mov');
$myVideoEntry->setMediaSource($filesource);
$myVideoEntry->setVideoTitle('My Test Movie');
$myVideoEntry->setVideoDescription('My Test Movie');
// Note that category must be a valid YouTube category !
$myVideoEntry->setVideoCategory('Comedy');
// Set keywords, note that this must be a comma separated string
// and that each keyword cannot contain whitespace
$myVideoEntry->SetVideoTags('cars, funny');
// Optionally set some developer tags
$myVideoEntry->setVideoDeveloperTags(array('mydevelopertag',
'anotherdevelopertag'));
// Optionally set the video's location
$yt->registerPackage('Zend_Gdata_Geo');
$yt->registerPackage('Zend_Gdata_Geo_Extension');
$where = $yt->newGeoRssWhere();
$position = $yt->newGmlPos('37.0 -122.0');
$where->point = $yt->newGmlPoint($position);
$myVideoEntry->setWhere($where);
// Upload URI for the currently authenticated user
$uploadUrl =
'http://uploads.gdata.youtube.com/feeds/users/default/uploads';
// Try to upload the video, catching a Zend_Gdata_App_HttpException
// if available or just a regular Zend_Gdata_App_Exception
try {
$newEntry = $yt->insertEntry($myVideoEntry,
$uploadUrl,
'Zend_Gdata_YouTube_VideoEntry');
} catch (Zend_Gdata_App_HttpException $httpException) {
echo $httpException->getRawResponseBody();
} catch (Zend_Gdata_App_Exception $e) {
echo $e->getMessage();
}
Чтобы загрузить видео какзакрытый, просто используйте: $ myVideoEntry-> setVideoPrivate ();до выполнения загрузки.$ videoEntry-> isVideoPrivate () можно использовать для проверки того, является ли запись видео приватной или нет.
Источник: http://framework.zend.com/manual/en/zend.gdata.youtube.html