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

С 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-&gt;set_server('ssl://webdav.yandex.ru'); $wdc-&gt;set_port(443); $wdc-&gt;set_user(login); $wdc-&gt;set_pass(password); $wdc-&gt;set_protocol(1); // enable debugging $wdc-&gt;set_debug(false); //если не удалось установить соединение, выводим ошибку if (!$wdc-&gt;open()) { print 'Ошибка: не удалось установить соединение с сервером!'; exit; } // Проверяем поддерживает ли webdav rfc 2518 if (!$wdc-&gt;check_webdav()) { print 'Ошибка: сервер не поддерживает WebDAV или неверный логин/пароль '; exit; } //Создаем папку $folder = '/myfolder'; $http_status = $wdc-&gt;mkcol($folder); //отправляем файл put методом класса $target_path = '/images/myfile.png'; $filename = 'myfile.png'; $http_status = $wdc-&gt;put_file($target_path, $filename); print 'статус загрузки ' . $http_status . '<br/>'; $wdc-&gt;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 ,   * (был изменён)

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

Скриншот