Задать вопрос

Как загрузить файл на Облако Mail средствами php?

Приветствую, пытаюсь загрузить файл (zip) на облако mail, прочитав статью , начал писать код.
Авторизация, получение токена прошло успешно, осталось главное, загрузить файл, посмотрел какие запросы отправляет сайт:
Первый запрос OPTIONS идет сюда, но ответа от него нет
https://cloclo19-upload.cloud.mail.ru/upload/?cloud_domain=2&x-email=(Логин)%40mail.ru&fileapi14750746778546


После чего выполняется вторая команда на тот же адрес, но уже POST и с каким то Request Payload (Content-Disposition: form-data; name="file"; filename="localhost.rar"
), который уже возвращает хеш:
https://cloclo19-upload.cloud.mail.ru/upload/?cloud_domain=2&x-email=(Логин)%40mail.ru&fileapi14750746778546


И уже третий запрос, запрос к api:
https://cloud.mail.ru/api/v2/file/add

Тут уже передается сам файл хеш для загрузки.

Это все понятно, пора было писать код, но на первом же этапе все остановилось:

$file = [
            'name' => 'book.zip',
            'path' => 'book.zip',
            'size' => filesize('book.zip')
        ];

        curl_setopt($this->curl, CURLOPT_URL, 'https://cloclo19-upload.cloud.mail.ru/upload/?cloud_domain=2&x-email=(Логин)%40mail.ru&fileapi14750746778546');
        curl_setopt($this->curl, CURLOPT_HEADER, true);
        curl_setopt($this->curl, CURLOPT_POST, true);
        curl_setopt($this->curl, CURLOPT_HTTPHEADER, array("Content-Type:multipart/form-data"));
        curl_setopt($this->curl, CURLOPT_POSTFIELDS, array("filedata" => "@" . $file['path'], "filename" => $file['name']));
        curl_setopt($this->curl, CURLOPT_INFILESIZE, $file['size']);
        curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, true);
        $result = curl_exec($this->curl);


возвращает

HTTP/1.1 100 Continue

HTTP/1.1 200 OK
Server: Tengine/2.0.0
Date: Wed, 28 Sep 2016 15:03:03 GMT
Content-Type: text/plain
Content-Length: 0
Connection: keep-alive
Keep-Alive: timeout=20
Strict-Transport-Security: max-age=31556926; includeSubDomains
X-XSS-Protection: 1; mode=block; report=https://cspreport.mail.ru/xxssprotection
X-Content-Type-Options: nosniff
X-Host: cloclo19.i.mail.ru


Прошу помочь
  • Вопрос задан
  • 4148 просмотров
Подписаться 10 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
dimonchik2013
@dimonchik2013
non progredi est regredi
попробуйте добиться 1 в 1 совпадения вывода в хттп отладчик (ну, кроме Date) от браузера и вашего скрипта, не факт, что курлом вы правильно аплоадите
Ответ написан
Комментировать
logofiles
@logofiles
web-dev
Попробуйте отправить файл контекстом в бинарном виде
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
20 дек. 2024, в 03:44
50000 руб./за проект
20 дек. 2024, в 03:38
1500 руб./в час
20 дек. 2024, в 02:36
3000 руб./за проект