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

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

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

Регистрация: Oct 2006
Адрес: Novosibirsk-Kaliningrad
Сообщений: 1,278
Отправить сообщение для terbooter с помощью ICQ Отправить сообщение для terbooter с помощью Skype™
По умолчанию Загрузка фоток в Вконтакт

Делаю загрузку фоток, как описано в их очень детальной доке тут
Выдает такой ответ
{"photos_list":"","aid":"94869903","hash":"7c1a9500977e99da911150066bad01d0","server":"4125"}

Пустой photos_list

Затем при попытке вызова метода "savePhotos"
Отвечает {"error":"Invalid photos"}

В чем может быть причина?

ПС Тестирую локально. (сессия открыта в IE, запускаю в StandalonFP)


Последний раз редактировалось wvxvw; 10.12.2009 в 23:17.
Старый 31.07.2009, 20:31
tonnon вне форума Посмотреть профиль Отправить личное сообщение для tonnon Найти все сообщения от tonnon
  № 2  
Ответить с цитированием
tonnon
 
Аватар для tonnon

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

Видимо неправильно передал запрос.

Старый 07.12.2009, 00:03
cooler_ua вне форума Посмотреть профиль Отправить личное сообщение для cooler_ua Найти все сообщения от cooler_ua
  № 3  
Ответить с цитированием
cooler_ua

Регистрация: May 2009
Сообщений: 83
Та же самая проблема, пока не могу понять причину

Старый 07.12.2009, 12:59
xpymbl4 вне форума Посмотреть профиль Отправить личное сообщение для xpymbl4 Найти все сообщения от xpymbl4
  № 4  
Ответить с цитированием
xpymbl4
 
Аватар для xpymbl4

Регистрация: Jul 2008
Адрес: Smolensk
Сообщений: 124
Отправить сообщение для xpymbl4 с помощью ICQ Отправить сообщение для xpymbl4 с помощью Skype™
Загрузка файла из флеша может осуществиться лишь по какому - либо событию со стороны пользователя (например по нажатию на кнопку).
Итак:
0. Импортируем нужное (импортируем 1 файл, в аттаче 2 нужных файла)
Код AS3:
import MultipartURLLoader;
1. Что и куда загружаем.
Код AS3:
private var _upload_url:String; //Адрес, полученный для загрузки фотографии
private var _fileData:ByteArray; //Ваше изображение
private var _fileContentType:String; //Например так: _fileContentType = 'image/png';
2. Попытка загрузки без нажатия кнопки.
Код AS3:
private function upload():void {
    if (_fileData != null) {
        try {
            uploadFileData();
        } 
        catch(e:Error) {
            btn.visible = true;
        }
    } 
    else {
    }
}
3. Теперь загрузка только по нажатию кнопки.
Код AS3:
private function onBtn(event:MouseEvent):void {
    uploadFileData();
}
4. Непосредственно загрузка изображения, получение "server","photos_list","aid","hash".
Код AS3:
private function uploadFileData():void {
    var mll:MultipartURLLoader = new MultipartURLLoader();
    mll.addEventListener(Event.COMPLETE, onUploadCompleteThroughAlarm);			
    mll.addFile(_fileData, "file.jpg", "file1", _fileContentType);
    mll.load(_upload_url);		
}
private function onUploadCompleteThroughAlarm(event:Event):void {
    event.currentTarget.removeEventListener(event.type, arguments.callee);
    savePhotos(parseServerAck(event.currentTarget.loader.data as String));
}
private static function parseServerAck(serverAck:String):* {
    var result:* = new Object;
    for each(var pair:String in serverAck.split(/\s*[{},]\s*/)) {
        var tmp:Array = pair.split(/\s*[:"]\s*/);
        if (  (tmp[1] == "server")
            || (tmp[1] == "photos_list")
            || (tmp[1] == "aid")
            || (tmp[1] == "hash")) {
            result[tmp[1]] = tmp[4];
        }
    }
    return result;			
}
private function savePhotos(serverAck:*):void {			
    var variables:URLVariables = new URLVariables;
    for(var key:String in serverAck) {
        variables[key] = serverAck[key];
    }
    savePhotosVk(variables.aid, variables.server, variables.photos_list, variables.hash);
}
5. И, наконец, сохранение переданного изображения (photos.save)
Код AS3:
private function savePhotosVk(this_aid:Number, this_server:String, this_photos_list:String, this_hash:String):void {
...
}
Используемые классы для загрузки
Вложения
Тип файла: rar MultipartURL.rar (4.3 Кб, 702 просмотров)
__________________
круглое тащим, квадратное катим


Последний раз редактировалось xpymbl4; 07.12.2009 в 13:14.
Старый 10.12.2009, 22:11
cooler_ua вне форума Посмотреть профиль Отправить личное сообщение для cooler_ua Найти все сообщения от cooler_ua
  № 5  
Ответить с цитированием
cooler_ua

Регистрация: May 2009
Сообщений: 83
Спасибо большое - разобрался.

Старый 19.01.2010, 13:44
Ice_VeNOm вне форума Посмотреть профиль Отправить личное сообщение для Ice_VeNOm Найти все сообщения от Ice_VeNOm
  № 6  
Ответить с цитированием
Ice_VeNOm

Регистрация: Jan 2010
Сообщений: 8
Как загрузить изображение и представить его в виде ByteArray&
Код AS3:
downloadURL = new URLRequest();
downloadURL.url = "http://vkontakte.ru/images/gifts/256/174.jpg";
var imageLoader: URLLoader = new URLLoader();
imageLoader.load(downloadURL);
var data1: ByteArray = ByteArray(imageLoader.data);
что-то не пашет

Старый 19.01.2010, 13:56
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 7  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код AS3:
var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, urlLoader_completeHandler);
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
urlLoader.load(new URLRequest("http://vkontakte.ru/images/gifts/256/174.jpg"));
 
function urlLoader_completeHandler(event:Event):void
{
	var byteArray:ByteArray = urlLoader.data;
 
	// проверка
	var loader:Loader = new Loader();
	loader.loadBytes(byteArray);
	addChild(loader);
}

Старый 19.01.2010, 14:14
xpymbl4 вне форума Посмотреть профиль Отправить личное сообщение для xpymbl4 Найти все сообщения от xpymbl4
  № 8  
Ответить с цитированием
xpymbl4
 
Аватар для xpymbl4

Регистрация: Jul 2008
Адрес: Smolensk
Сообщений: 124
Отправить сообщение для xpymbl4 с помощью ICQ Отправить сообщение для xpymbl4 с помощью Skype™
Кстати, может быть это офтоп, но все же так и не смог добиться хорошего качества картинки (в ByteArray я загоняю MovieClip). Качество ужасает.
Примечание:
в новых плейерах, аплоад картинок сработает только в обработчике действия пользователя, иначе исключение, но в старых плеерах может сработать
Код AS3:
try {
    uploadFileData();
}
__________________
круглое тащим, квадратное катим


Последний раз редактировалось xpymbl4; 19.01.2010 в 14:24.
Старый 19.01.2010, 14:34
Ice_VeNOm вне форума Посмотреть профиль Отправить личное сообщение для Ice_VeNOm Найти все сообщения от Ice_VeNOm
  № 9  
Ответить с цитированием
Ice_VeNOm

Регистрация: Jan 2010
Сообщений: 8
udaaff, огромное вам спасибо, вы меня второй день выручаете, аж стыдно за свою неграмотность.

Но у меня опять проблема, почему то не хочет отправлять на стену, на этот раз привожу весь листинг.

Код AS3:
var urlRequest: URLRequest = new URLRequest();
	    if (uploadUrl == "") {
	      debug("Upload URL is empty");
	      return;
	    } else {
	    	debug(uploadUrl);
	    }
 
 
        var mll:MultipartURLLoader = new MultipartURLLoader();
        mll.addEventListener(Event.COMPLETE, onUploadComplete);		
 
 
 
 
 
 
      try {
		debug('start');
 
 
        var urlLoader:URLLoader = new URLLoader();
      // urlLoader.addEventListener(Event.COMPLETE, urlLoader_completeHandler);
        urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
        urlLoader.load(new URLRequest("http://vkontakte.ru/images/gifts/256/174.jpg"));
 
 
		debug('ok');
		var byteArray:ByteArray = urlLoader.data; 	
		debug('ok1');
        mll.addFile(byteArray, "file1.jpg", "photo", 'image/jpg');
		debug("upl\n");
		mll.load(uploadUrl);
        showLoader();
      } catch (error:Error) {
        debug("Upload error");
        return;
      }
 
    }
URL правильный, все проходит отлично до
Цитата:
mll.load(uploadUrl);

Старый 19.01.2010, 15:19
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 10  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Данные не моментально грузятся. Нужно дожидаться события Event.COMPLETE.
А вы сразу пытаетесь получить:
Код AS3:
urlLoader.load(new URLRequest("http://vkontakte.ru/images/gifts/256/174.jpg"));
debug('ok');
var byteArray:ByteArray = urlLoader.data;

Создать новую тему Ответ Часовой пояс GMT +4, время: 16:19.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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