![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 434
|
Знаю как загружать картинки в альбом
1. получаю photos.getUploadServer => uploadUrl 2. формирую запрос public function uploadPhotos(): void { var barr: ByteArray; barr = new ByteArray(); barr = photo1.getBitmapByteArray(false); multipartURLLoader.addFile(barr, "file1.jpg", 'file1'); barr = photo2.getBitmapByteArray(false); multipartURLLoader.addFile(barr, "file2.jpg", 'file2'); barr = photo3.getBitmapByteArray(false); multipartURLLoader.addFile(barr, "file3.jpg", 'file3'); multipartURLLoader.load(uploadUrl); multipartURLLoader.clearFiles(); } private function savePhotos(e: Event): void { var data: Object = JSON.decode(multipartURLLoader.loader.data); VK.api('photos.save', {aid: albumAid, server: data.server, photos_list: data.photos_list, hash:data.hash}, savePhotosTrue, savePhotosFalse); } ну 1 это понятно photos.getUploadServer меняю на => photos.getWallUploadServer а как 2 и 3 изменить ? тут читал но пример вроде как для одной картинки, а как быть если сразу 3 надо загрузить как в моём случае ? http://vk.com/developers.php?oid=-1&...BA%D1%82%D0%B5 |
|
|||||
|
Регистрация: Aug 2011
Сообщений: 121
|
проблема в том, что photos.saveWallPhoto в вашем случае вместо photos.save, сохраняет только одну фотографию. поэтому вам придется по отдельности загружать так:
photos.getWallUploadServer -> загружаете файл с полем фото (multipartURLLoader.addFile(barr, "file1.jpg", 'photo'); -> photos.saveWallPhoto -> потом получаете id фотографии и запоминаете его например в массиве -> повторяете эту операцию нужное количество раз -> методом wall.post постим с параметром owner_id (id пользователя) и в параметре attachments указываете из массива id фотографий разделенные через запятую. попробуете, отпишитесь, ок? |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 434
|
(multipartURLLoader.addFile(barr, "file1.jpg", 'photo') а тут наверн каждый раз придётся жать кнопку перед загрузкой ?
как же тогда приложения типа фотостатус.рф загружают картинки сразу ? попробую, жалко всё таки что несколько фотографий нельзя загрузить сразу отпишусь потом Последний раз редактировалось ЗлОй ПрОграММер; 20.11.2011 в 11:21. |
|
|||||
|
Регистрация: Aug 2011
Сообщений: 121
|
вот нашел из вашей темы обходной путь: http://www.flasher.ru/forum/showpost...6&postcount=11
чтоб не загружать по кнопке. |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 434
|
да да и забыл совсем спасибо, ща уже демку делаю
Добавлено через 55 минут а что такое MultipartData.BOUNDARY ? где найти ? отдельный класс скачивать multipartURLLoader.addFile(byteArrays[0], "file1.jpg", 'photo'); как это исправить ? вообщем скачал класс MultipartData, поменял //urlRequest.contentType = 'multipart/form-data; boundary=' + getBoundary(); urlRequest.requestHeaders.push(new URLRequestHeader("Content-type", "multipart/form-data; boundary=" + MultipartData.BOUNDARY)); {"mid": "мой id", "gid": "0", "server": "9641", "photo": "", "hash": "7c499ba6adc6e7234e6aba9ba93c3d52"} вот сам класс MultipartData //////////////////////////////////////////////////////////////////////////////// // // Copyright 2009 Vitali Sosnovski // // NOTICE: You may distribute this class freely, // provided it is not modified in any way (including // removing this header or changing the package path). // // Please contact udaaff[at]gmail.com prior to distributing // modified versions of this class. // //////////////////////////////////////////////////////////////////////////////// package { import flash.utils.ByteArray; public class MultipartData { public static const BOUNDARY:String = "----------cH2gL6ei4Ef1gL6GI3Ij5Ef1Ef1Ef1"; private static const CRLF:String = "\r\n"; private static const HYPHENS:String = "--"; //-------------------------------------------------------------------------- // // Constructor // //-------------------------------------------------------------------------- public function MultipartData() { super(); } //-------------------------------------------------------------------------- // // Variables // //-------------------------------------------------------------------------- //-------------------------------------------------------------------------- // // Properties // //-------------------------------------------------------------------------- //---------------------------------- // data //---------------------------------- private var _data:ByteArray = new ByteArray(); public function get data():ByteArray { var d:ByteArray = new ByteArray(); d.writeBytes(_data); d.writeUTFBytes(HYPHENS + BOUNDARY + HYPHENS); return d; } //-------------------------------------------------------------------------- // // Methods // //-------------------------------------------------------------------------- public function addFile(file:ByteArray, name:String, fileName:String = "name.jpg"):void { // _data.writeUTFBytes(HYPHENS + BOUNDARY + CRLF); // _data.writeUTFBytes("Content-Disposition: form-data; name=filename"); _data.writeUTFBytes(HYPHENS + BOUNDARY + CRLF); _data.writeUTFBytes("Content-Disposition: form-data; name=" + name + "; filename=" + fileName + CRLF); // _data.writeUTFBytes("Content-Disposition: form-data; name=" + name + CRLF); без filename возвращает invalid photo _data.writeUTFBytes("Content-Type: application/octet-stream" + CRLF + CRLF); _data.writeBytes(file); _data.writeUTFBytes(CRLF); } public function clear():void { // _data.clear(); } } } Последний раз редактировалось ЗлОй ПрОграММер; 20.11.2011 в 15:41. |
|
|||||
|
Регистрация: Aug 2011
Сообщений: 121
|
не в тему но все же - какая у Вас версия flash плеера?
у меня почему-то не прокатывает MultipartData.BOUNDARY может они уже обновили безопасность в плеере, у меня flash плеер 11 а по кнопке загружает и с полем photo и с полем file1(multipartURLLoader.addFile(byteArrays[0], "file1.jpg", 'photo'); и multipartURLLoader.addFile(byteArrays[0], "file1.jpg", 'file1'); все таки обход этот мы нашли еще полтора года назад Последний раз редактировалось Dima998; 20.11.2011 в 16:52. |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 434
|
так мне надо чтоб не по кнопке загружало, а сразу
насчёт плеера не помню какая версия, неделю назад обновлял у вас есть пример рабочего кода чтобы картинка загружалась не по нажатию кнопки ???? Последний раз редактировалось ЗлОй ПрОграММер; 20.11.2011 в 23:07. |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 434
|
вообщем получилось несколько фоток грузить, multipartURLLoader.addFile(barr, "file1.jpg", 'file1') тоесть поле не photo, а file1 нужно делать
до 6 фоток можно за раз загрузить |
|
|||||
|
Регистрация: Aug 2011
Сообщений: 121
|
понятно, то есть проблема решена...
|
|
|||||
|
Регистрация: Nov 2010
Сообщений: 434
|
да, решена, спасиб за помощь
|
![]() |
![]() |
Часовой пояс GMT +4, время: 20:06. |
|
|
« Предыдущая тема | Следующая тема » |
|
|