1. С помощью метода photos.getUploadServer приложение узнает http-адрес для загрузки фотографий. При вызове этого метода можно указать параметр save_big равным 1, тогда помимо стандартных размеров фотографии будут сохраняться в более высоком качестве.
2. Приложение формирует POST-запрос на полученный адрес.
Запрос должен содержать поля file1-file5, которые содержат файлы с изображениями (JPG, PNG, BMP или GIF).
В ответ приложение получает следующие данные в формате JSON:
{"server": '1', "photos_list": '2,3,4', "aid": '5', "hash": '12345abcde'}
3. С помощью метода photos.save приложение передает серверу полученные данные (server, photos_list, aid и hash) и получает данные о загруженных изображениях.
Фотографии загружены.
Как реализовать второй шаг, т.е как сформировать этот POST запрос и задать file1-file5?
Делал так (AS 3.0):
Код: Выделить всё
private function getPhotosUploadServer(aid:*):void{ query=api.getPhotosUploadServer(aid); url_request=new URLRequest(query); url_loader=new URLLoader(); url_loader.addEventListener(Event.COMPLETE, photoLoaded); url_loader.load(url_request); } private function photoLoaded(e:Event):void{ var responsePhoto:XML = new XML(url_loader.data); upload_url = responsePhoto.upload_url; var req:URLRequest = new URLRequest(upload_url + "&file1="); //вот тут думаю проблема. Как задать file1 req.method = URLRequestMethod.POST; load = new URLLoader(); load.addEventListener(Event.COMPLETE, photoSaveInAlbum); this.load.load(req); //получаю {"server": '1', "photos_list": '', "aid": '5', "hash": '12345abcde'}. photos_list соответственно пустой.} private function photoSaveInAlbum(e:Event):void{ var data: Object = JSON.decode(load.data); var q:* = api.savePhotos(data.aid, data.server, data.photos_list, data.hash); url_request=new URLRequest(q); url_loader=new URLLoader(); url_loader.addEventListener(Event.COMPLETE, photoSave); url_loader.load(url_request); } private function photoSave(e:Event):void { menu_item.panel.addChild( VK.addText("фото загружено в альбом", 20, 100 ) ); }