Как подключить Яндекс.Диск?

 
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1862
Наткнулся на хабре на статью, там скрипт для заправки файлов сайта на Яндекс.Диск: http://habrahabr.ru/post/67111/

Как бы прикрутить форму загрузки на Яндекс.Диск на сайт? Было бы интересно сделать на сайте форму по которой пользователи смогут загружать файлы на мой Яндекс.Диск.
Дополнения для InstantCMS
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1862
Для пущей наглядности копирую скрипт сюда:
Код PHP:
  1. <?php
  2. print uploadFile(ваш_логин, ваш_пароль, путь_к_файлу)."\n";
  3.  
  4. function uploadFile($login, $password, $filename)
  5. {
  6. $cookie_file = 'cookie.txt';
  7. $user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6';
  8.  
  9. // логинимся в систему
  10. $ch = curl_init('https://passport.yandex.ru/passport?mode=auth');
  11.  
  12. $fields = array();
  13. $fields[] = "login=$login";
  14. $fields[] = "passwd=$password";
  15. $fields[] = "twoweeks=yes";
  16. curl_setopt($ch, CURLOPT_POSTFIELDS, implode('&', $fields));
  17. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  18. curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
  19. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  20. curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
  21. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  22. curl_setopt($ch, CURLOPT_POST, 1);
  23. $result = curl_exec($ch);
  24. $info = curl_getinfo($ch);
  25.  
  26. if ($info['http_code'] != 200) return false;
  27.  
  28. // запрашиваем сервер для загрузки файла
  29. $url = 'http://narod.yandex.ru/disk/getstorage/?rnd=' . (mt_rand( 0, 777777) + 777777);
  30.  
  31. curl_setopt($ch, CURLOPT_URL, $url);
  32. curl_setopt($ch, CURLOPT_POST, 0);
  33. curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
  34. $result = curl_exec($ch);
  35. $info = curl_getinfo($ch);
  36.  
  37. if (preg_match('/"url":"(.*?)", "hash":"(.*?)", "purl":"(.*?)"/', $result, $m)) {
  38. $upload_url = $m[1];
  39. $hash = $m[2];
  40. $purl = $m[3];
  41. } else {
  42. return false;
  43. }
  44.  
  45. // загружаем файл на сервер
  46. $url = $upload_url . '?tid=' . $hash;
  47. $fields = array();
  48. $fields['file'] = '@' . $filename;
  49. curl_setopt($ch, CURLOPT_URL, $url);
  50. curl_setopt($ch, CURLOPT_REFERER, 'http://narod.yandex.ru/');
  51. curl_setopt($ch, CURLOPT_POST, 1);
  52. curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
  53. $result = curl_exec($ch);
  54. $info = curl_getinfo($ch);
  55.  
  56. if ($info['http_code'] != 200) return false;
  57.  
  58. // print_r($info);
  59. // проверяем прогресс бар
  60. $url = $purl . '?tid=' . $hash . '&rnd=' . (mt_rand( 0, 777777) + 777777);
  61.  
  62. curl_setopt($ch, CURLOPT_URL, $url);
  63. curl_setopt($ch, CURLOPT_POST, 0);
  64. $result = curl_exec($ch);
  65.  
  66. if (!preg_match('/"status": "done"/', $result, $m)) {
  67. return false;
  68. }
  69.  
  70. // переходим на страницу и определяем ссылку
  71. $url = 'http://narod.yandex.ru/disk/last/';
  72. curl_setopt($ch, CURLOPT_URL, $url);
  73. $result = curl_exec($ch);
  74. curl_close($ch);
  75.  
  76. if (preg_match('/<span class=\'b\-fname\'><a href="(.*?)">/', $result, $m)) {
  77. $fileURL = trim($m[1]);
  78. return $fileURL;
  79. }
  80.  
  81. return false;
  82. }
  83. ?>
Дополнения для InstantCMS
Реклама
cms
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1224
http://code.google.com/p/sabredav/ в дагоку
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1224
http://jyxo.github.com/php/class-Jyxo.Webdav.Client.html и еще )
Посетитель
small user social cms
Сообщений: 46
в догонку http://www.bitoman.ru/profile/api.html
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1012
не яндекс, но тоже вариант http://instantcms.ru/blogs/po-melochi/yekonomim-mesto-na-hostinge.html
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.