![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 30
|
Всем привет) В интернете видел темы о том, как сохранять фото в альбом ВКонтакт, а именно как сохранить фото закодированное в ByteArray ...но все эти темы уже устарели, т.к. api 2.0 больше не актуален...Поэтому я создал новую тему, в которой хочу задать вопрос...на который сам пока не смог ответить...
------------------------ В общем как сохранить фото в альбом из ByteArray?! Вот кусок кода по сохранению фото в альбом на api 3.0: function getAlbumsHandler2(e:Object):void{ aid = e.aid; // Берем самый первый альбом, реализуй выбор альбома согласно потребностям приложения VK.api("photos.getUploadServer",{"aid":aid},getUploadServerHandler,failHandler); } function getUploadServerHandler(e:Object):void{ var urlrequest:URLRequest = new URLRequest(e.upload_url); urlrequest.method = URLRequestMethod.POST; fileref.upload(urlrequest,"file1"); fileref.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, fileLoadedHandler); } function fileLoadedHandler(e:DataEvent):void{ VK.api("photos.save", JSON.decode(e.data), endUpload); } Как быть?!)) Кто поможет - буду очень, очень благодарен) |
|
|||||
|
Кусочек кода из класса по публикации картинок
private static var imageData:ByteArray; private static var imageLoader:URLLoader; private static var imageMessage:String; private static var imageOptions:Object; public static function postPhoto(bd:BitmapData, func:Function, message:String =""):void { var encoder:PNGEncoder = new PNGEncoder(); imageData = encoder.encode(bd); imageData = MultpartData.addFile(imageData, "photo"); imageMessage = message; getWallUploadServer(onGetWallUploadServer); } private static function onGetWallUploadServer(answer:XML):void{ var path:String = answer.upload_url.text(); var request:URLRequest = new URLRequest(); request.url = path; request.requestHeaders.push(new URLRequestHeader("Content-type", "multipart/form-data; boundary=" + MultpartData.BOUNDARY)); request.method = URLRequestMethod.POST; request.data = imageData; imageLoader = new URLLoader(); imageLoader.addEventListener(Event.COMPLETE, onUploadComplete); imageLoader.load(request); } public static function getWallUploadServer(func:Function):void { sendRequest( { method:"photos.getWallUploadServer"}, func ); } private static function onUploadComplete(e:Event):void { imageOptions = JSON.deserialize(imageLoader.data); saveWallPhoto(imageOptions.server,imageOptions.photo,imageOptions.hash, onSavePhotoComplete); } static private function onSavePhotoComplete(answer:XML):void{ var photoId:String = answer.photo.id.text(); VKWrapper.saveWallPost( { attachment:photoId, message:imageMessage }, onPublicResult); } public static function saveWallPhoto(server:String, photo:String, hash:String, func:Function):void { sendRequest( { method:"photos.saveWallPhoto", server:server, photo:photo, hash:hash}, func ); } package ru.atflash.encrypt { import flash.utils.ByteArray; /** * ... * @author rzer */ public class MultpartData{ public static const BOUNDARY:String = "----------cH2gL6ei4Ef1gL6GI3Ij5Ef1Ef1Ef1"; private static const CRLF:String = "\r\n"; private static const HYPHENS:String = "--"; public static function addFile(file:ByteArray, name:String = "Filedata", fileName:String = "name.jpg"):ByteArray { var data:ByteArray = new ByteArray(); data.writeUTFBytes(HYPHENS + BOUNDARY + CRLF); data.writeUTFBytes("Content-Disposition: form-data; name=" + name + "; filename=" + fileName + CRLF); data.writeUTFBytes("Content-Type: application/octet-stream" + CRLF + CRLF); data.writeBytes(file); data.writeUTFBytes(CRLF); var result:ByteArray = new ByteArray(); result.writeBytes(data); result.writeUTFBytes(HYPHENS + BOUNDARY + HYPHENS); return result; } } }
__________________
if (love is true) break my.heart; |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 30
|
Спасибо!)) Я уже давно разобрался сам!
|
|
|||||
|
Регистрация: Aug 2010
Сообщений: 14
|
@geka96: и как вы поступили? можете показать пример?
|
![]() |
![]() |
Часовой пояс GMT +4, время: 13:40. |
|
|
« Предыдущая тема | Следующая тема » |
|
|