Загрузка файла на Яндекс.Диск с помощью REST API и php

Подразумевается, что вы успешно зарегистрировали приложение с доступом к Яндекс Диску, получили токен и даже отправили запрос на получение ссылки для загрузки файла на Яндекс.Диск и записали этот url в переменную link. Теперь дело за малым, нужно только отправить файл PUT методом, но в этом и проблема, в официальной документации этому моменту почти не уделено внимания и вроде все делается довольно просто, так оно и есть на самом деле. Ниже представлен php код, который загрузит файл.

$file = '/полный/адрес/файла/который/хотите.загрузить';
$filename = basename($file);
$link = $this->uploadLink('app:/' . $filename, true);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $link['href']);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS, file_get_contents($file));
$answer = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
if ($info['http_code'] != '201') {
    echo 'Error';
} else {
    echo 'OK';
}

при этом конструкция переменная app:/ скажет чтобы файл был загружен в корень директории вашего приложения.

comments powered by HyperComments
Евгений
2017-01-18 20:08:25
зачем переменная $answer?
Алексей
2017-03-20 15:24:18
сам ответ на запрос
При копировании материалов обратная ссылка на play-stop.ru желательна обязательна!