В этом посте хочу рассказать как загрузить файлы на Яндекс диск, используя 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();
Вот так просто можно загрузить файлы на Яндекс диск.
Автор: Kaspsoft