Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/70: Рейтинг темы: голосов - 70, средняя оценка - 4.84
 Аватар для Muhammad97
10 / 10 / 2
Регистрация: 10.11.2013
Сообщений: 238
1

Загрузка фото VK API

08.07.2014, 00:13. Показов 14152. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пытаюсь загрузить фото в альбом с помощью VK API. Загрузка фотографий на сервер ВКонтакте от имени пользователя осуществляется приложением в 3 этапа:

1. С помощью метода photos.getUploadServer приложение узнает http-адрес для загрузки фотографий в зависимости от альбома, в который их необходимо загрузить.

2. Приложение формирует POST-запрос на полученный адрес.
Запрос должен содержать поля file1-file5, которые содержат файлы с изображениями (JPG, PNG, BMP или GIF).

В ответ приложение получает следующие данные в формате JSON:

JSON
1
{"server": '1', "photos_list": '2,3,4', "album_id": '5', "hash": '12345abcde'}
1. Получаю url для загрузки
2. На этом шаге начинаются проблемы:
PHP
1
2
3
4
5
6
7
8
9
10
11
  $files = array('file1'=>'@'.$FILENAME);
 
  $ch = curl_init($upload_url);
  //curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-type: multipart/form-data"));
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $files); 
  $response = curl_exec($ch);
 
  echo $response;
Выводит:

JSON
1
{"server":618431,"photos_list":"[{\"photo\":\"8866c69e21:x\",\"sizes\":[[\"s\",\"618431979\",\"ef81\",\"cfNZTCEvygI\",66,75],[\"m\",\"618431979\",\"ef82\",\"zLDFPTo1vJM\",115,130],[\"x\",\"618431979\",\"ef83\",\"8W1WQKx4BLU\",429,486],[\"o\",\"618431979\",\"ef84\",\"f91ktq6nvZ0\",130,147],[\"p\",\"618431979\",\"ef85\",\"mx4ZCg4WV8s\",200,227],[\"q\",\"618431979\",\"ef86\",\"3YHvPvQewlo\",320,363],[\"r\",\"618431979\",\"ef87\",\"8dq7s4RT1_Y\",429,486]],\"kid\":\"9973d40cae2dca9555553cb147ab8dd5\"}]","aid":198717486,"hash":"03932de1945ae9e9173ad7912b8cf0bd","gid":73685349}
Запрос, вроде бы, сформирован правильно. Подскажите, в чем ошибка?
1
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.07.2014, 00:13
Ответы с готовыми решениями:

Загрузка фото
Добрый вечеря делаю ресайз изображений при помощи класса. Дело в том что там используются функции из GD и я так понял из-за этого сильно...

Безопасная загрузка фото
Подскажите пожалуйста, безопасен и актуален ли данный код (загрузка фото): if(isset($_FILES)){ $path_images = 'images';//папка,...

Загрузка фото на сервер
данные код позволяет загрузить txt файлы , но не jpg. в чем может быть причина ? if(!empty($_FILES)){ $path = 'uploads/'; //...

6
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
 Аватар для Tatikoma
259 / 223 / 109
Регистрация: 07.07.2014
Сообщений: 965
08.07.2014, 00:36 2
Так и ответ сформирован правильно. Дальше нужно вызвать метод photos.save() и фотографии сохранятся на серверах.
1
 Аватар для Muhammad97
10 / 10 / 2
Регистрация: 10.11.2013
Сообщений: 238
08.07.2014, 13:58  [ТС] 3
Вызывал photos.save, ответ:
JSON
1
{"error":{"error_code":100,"error_msg":"One of the parameters specified was missing or invalid: photos_list is invalid","request_params":[{"key":"oauth","value":"1"},{"key":"method","value":"photos.save"},{"key":"access_token","value":"6efea642f3bb4a4bce99374f9be4a0e7e015d7693d859513813db0cb9a3dc5bff86e3ef53ee417429879c"},{"key":"album_id","value":"198717486"},{"key":"group_id","value":"73685349"},{"key":"hash","value":"0fe2e7ef277ed2df2facf5cd2f2d2dbd"},{"key":"server","value":"617928"},{"key":"caption","value":"Description"}]}}
0
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
 Аватар для Tatikoma
259 / 223 / 109
Регистрация: 07.07.2014
Сообщений: 965
08.07.2014, 15:27 4
Значит неправильно вызываете photos.save, покажите его код вызова.
0
 Аватар для Muhammad97
10 / 10 / 2
Регистрация: 10.11.2013
Сообщений: 238
08.07.2014, 15:41  [ТС] 5
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
function GET($url)
{
  $useragent='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3';
 
 
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_HEADER, false);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  $result=curl_exec($ch);
  curl_close($ch);
  
  return $result;
}
 
function API_Request($method, $parameters)
{
//method - метод API
//parameters - ассоциативный массив или строка с параметрами
 
  if (is_array($parameters))
  $url = 'https://api.vkontakte.ru/method/'.$method.'?'.http_build_query($parameters);
  else
  $url = 'https://api.vkontakte.ru/method/'.$method.'?'.$parameters;
 
  $response = GET($url);
 
  return $response;
 
}
 
 $parameters = array(
'access_token'=>$token,
'album_id'=>$album_id,
'group_id'=>$group_id,
'hash'=>$temp['hash'],
'server'=>$temp['server'],
'caption'=>$caption
);
 
 $response = API_Request('photos.save', $parameters);
  
 echo $response;
0
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
 Аватар для Tatikoma
259 / 223 / 109
Регистрация: 07.07.2014
Сообщений: 965
08.07.2014, 15:53 6
Лучший ответ Сообщение было отмечено Muhammad97 как решение

Решение

Цитата Сообщение от Muhammad97 Посмотреть сообщение
photos_list is invalid
Вот же он вам ругается. А знаете почему? - Потому что вы его не отправляете.. =)

Посмотрите внимательно в документации: https://vk.com/dev/photos.save
0
 Аватар для Muhammad97
10 / 10 / 2
Регистрация: 10.11.2013
Сообщений: 238
08.07.2014, 15:57  [ТС] 7
Спасибо, исправил:

PHP
1
2
3
4
5
6
7
8
9
 $parameters = array(
'access_token'=>$token,
'album_id'=>$album_id,
'group_id'=>$group_id,
'hash'=>$temp['hash'],
'server'=>$temp['server'],
'photos_list'=>$temp['photos_list'],
'caption'=>$caption
);
Загрузилось
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.07.2014, 15:57
Помогаю со студенческими работами здесь

Загрузка фото на сайт
Подскажите пожалуйста, как сделать загрузку юзерами фото на сайт?

Загрузка фото для фотогалереи
Как изменить код загрузки фото таким образом чтобы загружаемые скопом файлы поучали нумерацию: "1", "2", "3",...

Загрузка нескольких фото сразу
<?php $data = $_POST; if (isset($data)) print_r($_FILES); ?> <form name="add_ad" action="/add_ads.php" method="post"...

Загрузка фото на сайт для галлереии
<body> <form method="post" action="" enctype="multipart/form-data"> <label>File:</label> <input type="file" name="file"> <input...

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Winforstrap или красявый дизайн своими руками на HTML+JS+Winform­s
anomal6 04.03.2025
Сидел тут вечером ковырял проект на MAUI, и как же глупо создаются пакеты MSIX и система обновлений пакета публикации, но не об этом. Бывает нужен современный дизайн программы а писать на MAUI,. . .
Формат данных для симуляции физики, посредством распространённы­­­­­­­х не обученных моделей.
Hrethgir 04.03.2025
Что-то как-то снова потерялось, зато катангенсы закатангесились в одном сообщении. На днях писал, что планирую для работы апгрейдить (на этот раз удачно) девайс для работы (конкретно - здоровья для,. . .
Концепция variadic
CoderHuligan 04.03.2025
Мне не очень нравится (а кому это нравится?) что у нас есть отдельно компилятор, отдельно линковщик, причем со своим собственным командным языком. При этом усложнении надо знать помимо языка. . .
Java Record или Kotlin Data Class: что лучше для неизменяемых данных
Wired 04.03.2025
Java Record и Kotlin Data Class — два мощных инструмента для обуздания неизменяемых структур данных, каждый со своим уникальным подходом к решению этой задачи. История их появления весьма. . .
Создание производительны­­­х API с Java и gRPC
Wired 04.03.2025
В мире микросервисной разработки вопрос производительности часто становится краеугольным камнем. И хотя REST API давно завоевал сердца разработчиков своей простотой и интуитивностью, при высоких. . .
Что нового в JDK 24
Wired 04.03.2025
JDK 24 — это настоящий прорыв в эволюции Java, который кардинально меняет правила игры. В этом релизе разработчики Oracle наконец-то довели до ума множество критически важных улучшений в. . .
Разработка блокчейн с использованием Java: смарт-контракты и dApp
Wired 04.03.2025
Погружаясь в мир блокчейн-разработки на Java, разработчик получает доступ к внушительному арсеналу инструментов. В отличие от Solidity, который "заперт" в экосистеме Ethereum, Java предоставляет. . .
WebAssembly в Kubernetes
stackOverflow 03.03.2025
В современной экосистеме облачных технологий WebAssembly (Wasm) становится все более значимым компонентом, предлагая уникальный подход к выполнению кода в распределенных системах. Эта технология. . .
GitHub Actions или Jenkins: Выбираем CI/CD платформу
stackOverflow 03.03.2025
Непрерывная интеграция и развертывание (CI/ CD) изменили подход к разработке программного обеспечения, превратив его в бесшовный процесс от написания кода до развертывания в продакшн. GitHub Actions и. . .
Автоматизация тестирования Pull Request в Kubernetes: Интеграция с GitHub Actions и GKE
stackOverflow 03.03.2025
Масштабные проекты с использованием Kubernetes требуют надежной системы тестирования изменений перед их внедрением в продакшн-среду. Традиционный подход с ручной проверкой Pull Request не справляется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru