СоХабр закрыт.

С 13.05.2019 изменения постов больше не отслеживаются, и новые посты не сохраняются.

| сохранено

H Загрузка файлов на Яндекс диск, используя API диска в черновиках

API
В этом посте хочу рассказать как загрузить файлы на Яндекс диск, используя API диска.
Покопавшись в просторах рунета, я наткнулся на класс, который позволяет без особых усилий устанавливать соединение с Yandex disk и использовать его просторы для хранения файлов. Скачать класс можно вот тут.

Итак приступим:

Передо мной задача прикрепления файлов, а именно сканированных документов к клиентам первым что нужно сделать, это загрузить файл на наш сервер (приводить листинг кода не стану, т.к. можно найти кучу уже написанных статей на эту тему).

Приступаем к описанию загрузки файлов на Яндекс диск:

//подключаем наш класс


if (!class_exists('webdav_client')) {

require('classes/YandexApi/Yandex.Disk_client.php');

}

/*

*

* в следующих строках устанавливаем url сервера, порт, версию протокола и

* передаем логин и пароль от Яндекс диска для авторизации

*/

$wdc = new webdav_client();

$wdc->set_server('ssl://webdav.yandex.ru');

$wdc->set_port(443);

$wdc->set_user(login);

$wdc->set_pass(password);

$wdc->set_protocol(1);

// enable debugging

$wdc->set_debug(false);

//если не удалось установить соединение, выводим ошибку

if (!$wdc->open()) {

print 'Ошибка: не удалось установить соединение с сервером!';

exit;

}

// Проверяем поддерживает ли webdav rfc 2518

if (!$wdc->check_webdav()) {

print 'Ошибка: сервер не поддерживает WebDAV или неверный логин/пароль ';

exit;

}

//Создаем папку

$folder = '/myfolder';

$http_status = $wdc->mkcol($folder);

//отправляем файл put методом класса

$target_path = '/images/myfile.png';

$filename = 'myfile.png';

$http_status = $wdc->put_file($target_path, $filename);

print 'статус загрузки '. $http_status. '
';

$wdc->close();

flush();

Вот так просто можно загрузить файлы на Яндекс диск.

комментарии (5)

+10
Antikiller ,  
Ух ты, вы обнаружили, что ЯД поддерживает WebDav!

slowpoke.jpg
–4
+1 –5
alekseev_ap ,  
Спасибо за готовый код!
–1
+1 –2
reimax ,   * (был изменён)
используйте тег code для оформления, сейчас это абсолютно не читаемый код…
+1
zapimir ,  
2 года назад была статейка, код явно оттуда
ergoz.ru/dev/php-dev/zagruzhaem-faylyi-na-yandeks-disk-cherez-php.html
вы бы хоть ради интереса добавили oauth авторизацию, ну или новый REST API заюзали.
0
devlato ,   * (был изменён)

Что с кодом и вообще оформлением?

Скриншот