Страница 2 из 8

Re: Загрузка фотографий на сервер вконтакте

Добавлено: 05 дек 2011, 07:43
igor_ch
ID то поставил и сообщение свое подставляю, но ведь ID в php коде нигде не используется.
Я так понимаю, что ID здесь нужен только уже на этапе wall.savePost.

Re: Загрузка фотографий на сервер вконтакте

Добавлено: 26 дек 2011, 11:45
alexneo
igor_ch писал(а):Все сделано по примеру. Ничего не менял, за исключением установки имени файла фотки.
Возникает такое ощущение, что curl не получает правильно ответа, поскольку, если полученный адрес сервера ввести в адресной строке браузера, то возвращается и server и hash.
Такая же ситуация - пол дня мудился(. Но решение нашел: все дело в полном пути к файлу на сервере. И самое главное, @ку надо ставить перед полным путем, и тогда все будет ха-ра-шо :)

Код: Выделить всё

define('BASEPATH', str_replace('\\', '/', dirname(__FILE__)) . '/'); $post_params['photo'] = '@'.BASEPATH.'additem.jpg'; 
P.s. спасибо большое за представленный пример, очень помог.

Re: Загрузка фотографий на сервер вконтакте

Добавлено: 26 дек 2011, 11:56
boombast1k
alexneo Слушай можешь помочь? можешь скинуть полный исходник? а то у меня вообще 0 реакции,даже ответа не получаю :(

Re: Загрузка фотографий на сервер вконтакте

Добавлено: 26 дек 2011, 14:31
alexneo
Без проблем, держи.

основной файл:

Код: Выделить всё

<html>    <head>        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">         <script src="http://vkontakte.ru/js/api/xd_connection.js?2" type="text/javascript"></script>        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>        <script type="text/javascript">            VK.init(function()            {                VK.api('wall.getPhotoUploadServer', {}, function (data)                 {                    if (data.response)                    {                        $.post(                         'uploadimage.php',                        {upload_url:data.response.upload_url},                        function (json)                            {                                VK.api("wall.savePost", { wall_id: "ЮИД", server: json.server, photo:json.photo, hash: json.hash, post_id:"123", photo_id:data.id , message: 'текст' }, function(data)                                {                                    VK.callMethod("saveWallPost", data.response.post_hash);                                  });                            }, 'json');                    }                });             });           </script></head><body> </body></html> 
uploadimage.php:

Код: Выделить всё

  <?php         if (isset($_POST["upload_url"])) {        define('BASEPATH', str_replace('\\', '/', dirname(__FILE__)) . '/');                $upload_url = $_POST["upload_url"];               $post_params['photo'] = '@'.BASEPATH.'additem.jpg';              $ch = curl_init();        curl_setopt($ch, CURLOPT_URL, $upload_url);        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);        curl_setopt($ch, CURLOPT_POST, true);        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_params);        $result = curl_exec($ch);        curl_close($ch);                       $result = json_decode($result);               $mess = array (server => $result->server, photo=> $result->photo, hash => $result->hash);               echo json_encode($mess);           } ?> 

Re: Загрузка фотографий на сервер вконтакте

Добавлено: 26 дек 2011, 15:32
boombast1k
alexneo, благодарю... Сейчас буду проверять :)

Re: Загрузка фотографий на сервер вконтакте

Добавлено: 26 дек 2011, 16:29
boombast1k
УРАА!! неужели!
спасибо большое alexneo

Re: Загрузка фотографий на сервер вконтакте

Добавлено: 26 дек 2011, 16:32
boombast1k
Я передаю POST'ом картинку,но ничего не происходит.С чем это может быть связанно?
Вот кусок кода как принимаю картинку

Код: Выделить всё

<?php         if (isset($_POST["upload_url"])) {        define('BASEPATH', str_replace('\\', '/', dirname(__FILE__)) . '/');                $upload_url = $_POST["upload_url"];        $img = $_POST["img"];        $post_params['photo'] = '@'.BASEPATH.$img;
Что не так?

Re: Загрузка фотографий на сервер вконтакте

Добавлено: 26 дек 2011, 17:07
alexneo
BASEPATH высчитывается для файла-скрипта где он располагается, и если там же картинка, то скрипт ее видит. Может картинки у тебя в другой папке - добавь еще к ней путь. Вообщем поиграйся с путями, повыводи значение конечной переменной для картинки...

Re: Загрузка фотографий на сервер вконтакте

Добавлено: 26 дек 2011, 17:28
alexneo
УРАА!! неужели!
спасибо большое alexneo

P.s. пожалуйста, программируй на здоровье ;)

Re: Загрузка фотографий на сервер вконтакте

Добавлено: 26 дек 2011, 18:35
boombast1k
alexneo писал(а):BASEPATH высчитывается для файла-скрипта где он располагается, и если там же картинка, то скрипт ее видит. Может картинки у тебя в другой папке - добавь еще к ней путь. Вообщем поиграйся с путями, повыводи значение конечной переменной для картинки...
Ясно.. буду пробовать :)