[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Получение фотографий с яндекс диска
dmuradz
привет, всем!
недавно встала задача, сохранения и вывода изображений с яндекс диска на сайте.
С сохранением изображений на диск справился используя https://github.com/DEN007/Yandex.Disk-FULL-API этот класс.

Но вот с получением файлов возникают проблемы.
описываю по порядку что я делал и какой результат получал.

1. пытался вывести файлы используя метод get() того же класса

ls($path) - метод вывода всех файлов из указанного url $path
get($url, $buffer) получение файла
// $value['href'] - ссылка на файл
// $value['getcontenttype'] - тип файла
вот код:

//формирую url к папке с файлами
$path = '/'.$config['year'].'/'.$palmer_company.'/'.$id;
// получаю список файлов из папки
$dir = $wdc->ls($path);
foreach ($dir as $value) {
// если тип файла png, то получаем его
if ($value['getcontenttype'] == 'image/png') {
$http_status = $wdc->get($value['href'], $buffer);
print ' статус сервера ' . $http_status["status"] . '. размер файла ' . strlen($buffer). ' байт.<br>';
// кодирую файл, чтобы вставить его в теги img
$buffer = base64_encode($buffer);
echo "<img class='thumb' src='data:{$value['getcontenttype']};base64,{$buffer}'>";
}
}



Результат: возвращает только первую фотографию.


Метод 2. Пытаюсь get запросом получить доступ к файлам как описано тут: http://api.yandex.ru/disk/doc/dg/reference/preview.xml

/**
* делаем GET запос к яндекс фоткам.
* устанавливаем заголовоки, в ней передаем пароль и логин от яндекса в base64
* */

$login = "login"; //можно и без @yandex.ru
$password = "password";

$headers = array("Authorization: Basic " . base64_encode($login . ":" . $password)); //формируем заголовки для успешной авторизации

$ch = curl_init ();
curl_setopt ($ch , CURLOPT_URL , 'https://webdav.yandex.ru/3.png?preview&size=250x');
curl_setopt ($ch , CURLOPT_USERAGENT , "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11");
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt ($ch , CURLOPT_HEADER , 0);
curl_setopt ($ch , CURLOPT_RETURNTRANSFER , 1 );
curl_setopt ($ch , CURLOPT_BINARYTRANSFER , 1);
$content = curl_exec($ch);
curl_close($ch);

Результат: bad authorization!

Подскажите пожалуйста, что я не так делаю? и куда копать?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.