|
|
|||||
Загрузка фоток в Вконтакт
Делаю загрузку фоток, как описано в их очень детальной доке тут
Выдает такой ответ {"photos_list":"","aid":"94869903","hash":"7c1a9500977e99da911150066bad01d0","server":"4125"} Пустой photos_list Затем при попытке вызова метода "savePhotos" Отвечает {"error":"Invalid photos"} В чем может быть причина? ПС Тестирую локально. (сессия открыта в IE, запускаю в StandalonFP)
__________________
Сам себе репортер Последний раз редактировалось wvxvw; 10.12.2009 в 23:17. |
|
|||||
Регистрация: Nov 2005
Сообщений: 70
|
2. Приложение формирует POST-запрос на полученный адрес.
Запрос должен содержать поля file1-file5, которые содержат файлы с изображениями (JPG, PNG, BMP или GIF). Видимо неправильно передал запрос. |
|
|||||
Регистрация: May 2009
Сообщений: 83
|
Та же самая проблема, пока не могу понять причину
|
|
|||||
Загрузка файла из флеша может осуществиться лишь по какому - либо событию со стороны пользователя (например по нажатию на кнопку).
Итак: 0. Импортируем нужное (импортируем 1 файл, в аттаче 2 нужных файла) 1. Что и куда загружаем. private var _upload_url:String; //Адрес, полученный для загрузки фотографии private var _fileData:ByteArray; //Ваше изображение private var _fileContentType:String; //Например так: _fileContentType = 'image/png'; private function upload():void { if (_fileData != null) { try { uploadFileData(); } catch(e:Error) { btn.visible = true; } } else { } } 4. Непосредственно загрузка изображения, получение "server","photos_list","aid","hash". 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); } Используемые классы для загрузки
__________________
круглое тащим, квадратное катим Последний раз редактировалось xpymbl4; 07.12.2009 в 13:14. |
|
|||||
Регистрация: May 2009
Сообщений: 83
|
Спасибо большое - разобрался.
|
|
|||||
Регистрация: Jan 2010
Сообщений: 8
|
Как загрузить изображение и представить его в виде ByteArray&
что-то не пашет |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
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); } |
|
|||||
Кстати, может быть это офтоп, но все же так и не смог добиться хорошего качества картинки (в ByteArray я загоняю MovieClip). Качество ужасает.
Примечание: в новых плейерах, аплоад картинок сработает только в обработчике действия пользователя, иначе исключение, но в старых плеерах может сработать
__________________
круглое тащим, квадратное катим Последний раз редактировалось xpymbl4; 19.01.2010 в 14:24. |
|
|||||
Регистрация: Jan 2010
Сообщений: 8
|
udaaff, огромное вам спасибо, вы меня второй день выручаете, аж стыдно за свою неграмотность.
Но у меня опять проблема, почему то не хочет отправлять на стену, на этот раз привожу весь листинг. 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; } } Цитата:
|
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Данные не моментально грузятся. Нужно дожидаться события Event.COMPLETE.
А вы сразу пытаетесь получить: |
Часовой пояс GMT +4, время: 16:19. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|