Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 1
Регистрация: 12.07.2014
Сообщений: 133
1

Загрузить файл на Яндекс диск

08.05.2015, 11:40. Показов 1248. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, есть необходимость загружать файл через php на Яндекс,Диск.Наткнулся на статью
http://habrahabr.ru/post/67111/
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php
print uploadFile(ваш_логин, ваш_пароль, путь_к_файлу)."\n";
 
function uploadFile($login, $password, $filename)
{
    $cookie_file = 'cookie.txt';
    $user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6';
 
    // логинимся в систему
    $ch = curl_init('https://passport.yandex.ru/passport?mode=auth');
 
    $fields = array();
    $fields[] = "login=$login";
    $fields[] = "passwd=$password";
    $fields[] = "twoweeks=yes";
    curl_setopt($ch, CURLOPT_POSTFIELDS, implode('&', $fields));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,  0);
    curl_setopt($ch, CURLOPT_POST, 1);
    $result = curl_exec($ch);
    $info = curl_getinfo($ch);
 
    if ($info['http_code'] != 200) return false;
 
    // запрашиваем сервер для загрузки файла
    $url = 'http://narod.yandex.ru/disk/getstorage/?rnd=' . (mt_rand( 0, 777777) + 777777);
 
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST,  0);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
    $result = curl_exec($ch);
    $info = curl_getinfo($ch);
 
    if (preg_match('/"url":"(.*?)", "hash":"(.*?)", "purl":"(.*?)"/', $result, $m)) {
      $upload_url = $m[1];
      $hash = $m[2];
      $purl = $m[3];
    } else {
        return false;
    }
 
    // загружаем файл на сервер
    $url = $upload_url . '?tid=' . $hash;
    $fields = array();
    $fields['file'] = '@' . $filename;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_REFERER, 'http://narod.yandex.ru/');
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
    $result = curl_exec($ch);
    $info = curl_getinfo($ch);
 
    if ($info['http_code'] != 200) return false;
 
 //   print_r($info);
    // проверяем прогресс бар
    $url = $purl . '?tid=' . $hash . '&rnd=' . (mt_rand( 0, 777777) + 777777);
 
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST,  0);
    $result = curl_exec($ch);
 
    if (!preg_match('/"status": "done"/', $result, $m)) {
      return false;
    }
 
    // переходим на страницу и определяем ссылку
    $url = 'http://narod.yandex.ru/disk/last/';
    curl_setopt($ch, CURLOPT_URL, $url);
    $result = curl_exec($ch);
    curl_close($ch);
 
    if (preg_match('/<span class=\'b\-fname\'><a href="(.*?)">/', $result, $m)) {
      $fileURL = trim($m[1]);
      return $fileURL;
    }
 
    return false;
}
?>
. Файл загружается через <input type = "file" name = "somename" />, в место "путь_к_файлу" ввожу
PHP
1
]$_FILES['somename']['name']
пробовал также
PHP
1
$_FILES['somename']['tmp_name']
.В чем может быть проблема?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2015, 11:40
Ответы с готовыми решениями:

Программа которая скачивает файл с Яндекс.Диск
Допустим есть кнопка, которая появляется при вводе пароля. Нажав на нее на компьютер скачивается...

Как с помощью IEDownload скачать файл с Яндекс.Диск
Привет. Скачал и установил компонент IEDownload. Теперь хочу спросить кое-что: Как с помощью этого...

Как загрузить на сервер файл из оперативной памяти, не сохраняя его на диск?
Как загрузить на сервер файл из оперативной памяти, не сохраняя его на диск?

Загрузить файл из БД в переменную и, не сохраняя на жесткий диск, запустить приложением по умолчанию
Добрый всем! В базе данных храню (допустим) PDF файл в виде массива байт. Можно как то его...

0
08.05.2015, 11:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.05.2015, 11:40
Помогаю со студенческими работами здесь

Не получается загрузить игровой сервер в браузере Яндекс
вот скрин

Скачивание на Яндекс.Диск
После последнего обновления локального софта Яндекс.Диска, которое оказался фатальным, мне сделали...

Проводник и Яндекс.Диск
При удалении Яндекс Диск с боковой панели Проводника пропали папки Загрузка, Недавние места и...

Яндекс.Диск API
Работал кто-нибудь с этим API? Запускаю дефолтный пример яндекса, и при авторизации через браузер...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru