Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.07.2011, 17:36
VadimuZ вне форума Посмотреть профиль Отправить личное сообщение для VadimuZ Найти все сообщения от VadimuZ
  № 1  
Ответить с цитированием
VadimuZ
 
Аватар для VadimuZ

Регистрация: Sep 2004
Сообщений: 129
Отправить сообщение для VadimuZ с помощью ICQ
По умолчанию iFrame - Security sandbox и постинг на стену

И так за основу постинга брал эту публикацию
Проблема вот в чем. Приложение в ifreme, т.е. оно пасется на домене не относящемся к vk.
Постинг на стену производится в несколько этапов, в первом получаю через метод photos.getWallUploadServer урл куда будем заливать byteArray, но при попытке передать по полученному урлу срабатывает ошибка:

Код:
#2048: Security sandbox violation: http://myCrazySite.ru/flash.swf cannot load data from http://cs9702.vkontakte.ru/upload.php?act=do_add...
Т.е. я с своего сайта пытаюсь передать запрос на сервер вконтакте, но контакт не позволит принять запрос т.к. все ограничено внутри контакта http://cs9702.vkontakte.ru/crossdomain.xml

Как побороть sandbox?

Добавлено через 22 часа 32 минуты
В инете столько криво работающего кода или вообще не работающих что просто поражаешься сколько всего порой приходится перебрать что бы найти подходящее... а то и вовсе проще написать заново. Поэтому случаю вспомнился анекдот...

Препод: «Недоделанный отчёт — это не беда. Главное, когда будете делать детей — доделайте их! А то потом приходят недоделанные дети и приносят недоделанные отчёты. И никак не прервать этот замкнутый круг.»


А вот и сам скрипт (посредник) отправляющий изображение POST запросом на сервер вконтакте.
Не забываем делать предварительный encode ссылок в Base64
Код AS3:
<?php
//////////////////////////////
// PHOTO UPLOADER VKONTAKTE //
// v 1.0 - 05.07.2011 by VZ //
//////////////////////////////
 
$upload_url = base64_decode($_GET["upload_url"]); // ссылка на сервер вконтакте полученная с помощью медода wall.getPhotoUploadServer
$photo_url  = base64_decode($_GET["photo_url"]);  // ссылка на изображение которое необходимо залить на сервер
 
if(empty($upload_url) || empty($photo_url)) {  die("Приняты не все параметры"); }
 
$ext = getExtension($photo_url); // Получаем расширение
if( $ext == strtoupper("jpg") || $ext == strtoupper("png") || $ext == strtoupper("bmp") || $ext == strtoupper("gif") ) {
	// То что нужно =)
} else {
	die("Не верный формат изображения (JPG, PNG, BMP или GIF)");
}
 
$file = fopen($photo_url,'r');
$size = filesize($photo_url);
 
$postParams = array(
	'photo'=>"@$photo_url",
);
 
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $upload_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_INFILESIZE, $size);
curl_setopt($ch, CURLOPT_INFILE, $file);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postParams);
 
$response = curl_exec($ch);
 
// echo $response; // Ответ с JSON который содержит id photo залитой в вконтакт
 
$response = json_decode($response, true);
 
echo $response["photo"]; // id
 
function getExtension($filename) {
	return strtoupper(end(explode(".", $filename)));
}
?>
__________________
www.vadimuz.ru


Последний раз редактировалось VadimuZ; 05.07.2011 в 17:50.
Создать новую тему Ответ Часовой пояс GMT +4, время: 02:27.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 02:27.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.