PHP

IFrame пример загрузки фотографии

Возникла задача грузить картинки из IFrame приложения в альбом пользователя.
Так как офф докуметация не самая полная, которая бывает на свете, выкладываю этот пример.

Вот такое простенькое решение получилось:

JS-код

var albumid='[id альбома для загрузки]';
//Получаем сервер загрузки
VK.api('photos.getUploadServer',{aid:albumid}, function(datad){
if (datad.response)
{
$.post("upload.php",{upsrv:datad.response.upload_url,upsl:"1.jpg"},function(datas){
datas = JSON.parse(datas);
if (datas.server)
{
//подтверждаем загрузку
VK.api('photos.save',{aid: datas.aid, server: datas.server, photos_list: datas.photos_list, hash: datas.hash}, function(dataf)
{
if (dataf.response)
{
//код обработки ответа сервера
}
else
{
//код обработки ошибок photos.save
}
});
}
else
{
//Иногда ВК отвечает пустотой и не загружает фотки, обрабатываем это
}
});
}
else
{
//Код обработки ошибок для photos.getUploadServer
}
});

upload.php
<?php
 
// $_POST["upsrv"] адрес, полученный через photos.getUploadServer
//$_POST["upsl"] имя картинки, которую надо загрузить
 
if (isset($_POST["upsrv"])&&(isset($_POST["upsl"])))
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible;)");
curl_setopt($ch, CURLOPT_URL, $_POST["upsrv"]);
curl_setopt($ch, CURLOPT_POST, true);
$post = array(
"file1"=>"@/srv/www/public_html/img/".$_POST["upsl"],
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$response = curl_exec($ch);
die( (string)$response);
}
else
{
die("Wrong req");
}
?>
Добавлено: 14 Августа 2013 04:58:29 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...