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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.11.2011, 15:20
ЗлОй ПрОграММер вне форума Посмотреть профиль Отправить личное сообщение для ЗлОй ПрОграММер Найти все сообщения от ЗлОй ПрОграММер
  № 1  
Ответить с цитированием
ЗлОй ПрОграММер

Регистрация: Nov 2010
Сообщений: 434
По умолчанию добавить несколько фотографий на стену

Знаю как загружать картинки в альбом
1. получаю photos.getUploadServer => uploadUrl
2. формирую запрос
Код AS3:
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();
}
3. сохраняю
Код AS3:
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

Старый 19.11.2011, 23:13
Dima998 вне форума Посмотреть профиль Отправить личное сообщение для Dima998 Найти все сообщения от Dima998
  № 2  
Ответить с цитированием
Dima998
 
Аватар для Dima998

Регистрация: 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 фотографий разделенные через запятую. попробуете, отпишитесь, ок?

Старый 20.11.2011, 11:15
ЗлОй ПрОграММер вне форума Посмотреть профиль Отправить личное сообщение для ЗлОй ПрОграММер Найти все сообщения от ЗлОй ПрОграММер
  № 3  
Ответить с цитированием
ЗлОй ПрОграММер

Регистрация: Nov 2010
Сообщений: 434
(multipartURLLoader.addFile(barr, "file1.jpg", 'photo') а тут наверн каждый раз придётся жать кнопку перед загрузкой ?
как же тогда приложения типа фотостатус.рф загружают картинки сразу ?
попробую, жалко всё таки что несколько фотографий нельзя загрузить сразу
отпишусь потом


Последний раз редактировалось ЗлОй ПрОграММер; 20.11.2011 в 11:21.
Старый 20.11.2011, 13:59
Dima998 вне форума Посмотреть профиль Отправить личное сообщение для Dima998 Найти все сообщения от Dima998
  № 4  
Ответить с цитированием
Dima998
 
Аватар для Dima998

Регистрация: Aug 2011
Сообщений: 121
вот нашел из вашей темы обходной путь: http://www.flasher.ru/forum/showpost...6&postcount=11
чтоб не загружать по кнопке.

Старый 20.11.2011, 14:14
ЗлОй ПрОграММер вне форума Посмотреть профиль Отправить личное сообщение для ЗлОй ПрОграММер Найти все сообщения от ЗлОй ПрОграММер
  № 5  
Ответить с цитированием
ЗлОй ПрОграММер

Регистрация: Nov 2010
Сообщений: 434
да да и забыл совсем спасибо, ща уже демку делаю

Добавлено через 55 минут
а что такое MultipartData.BOUNDARY ? где найти ? отдельный класс скачивать

multipartURLLoader.addFile(byteArrays[0], "file1.jpg", 'photo'); как это исправить ?


вообщем скачал класс MultipartData, поменял
Код AS3:
//urlRequest.contentType = 'multipart/form-data; boundary=' + getBoundary();
urlRequest.requestHeaders.push(new URLRequestHeader("Content-type", "multipart/form-data; boundary=" + MultipartData.BOUNDARY));
загрузил byteArray, пришёл ответ
Код AS3:
{"mid": "мой id", "gid": "0", "server": "9641", "photo": "", "hash": "7c499ba6adc6e7234e6aba9ba93c3d52"}
как видно в photo пусто

вот сам класс MultipartData
Код AS3:
////////////////////////////////////////////////////////////////////////////////
//
//  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.
Старый 20.11.2011, 16:49
Dima998 вне форума Посмотреть профиль Отправить личное сообщение для Dima998 Найти все сообщения от Dima998
  № 6  
Ответить с цитированием
Dima998
 
Аватар для Dima998

Регистрация: 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.
Старый 20.11.2011, 17:21
ЗлОй ПрОграММер вне форума Посмотреть профиль Отправить личное сообщение для ЗлОй ПрОграММер Найти все сообщения от ЗлОй ПрОграММер
  № 7  
Ответить с цитированием
ЗлОй ПрОграММер

Регистрация: Nov 2010
Сообщений: 434
так мне надо чтоб не по кнопке загружало, а сразу
насчёт плеера не помню какая версия, неделю назад обновлял

у вас есть пример рабочего кода чтобы картинка загружалась не по нажатию кнопки ????


Последний раз редактировалось ЗлОй ПрОграММер; 20.11.2011 в 23:07.
Старый 24.11.2011, 00:40
ЗлОй ПрОграММер вне форума Посмотреть профиль Отправить личное сообщение для ЗлОй ПрОграММер Найти все сообщения от ЗлОй ПрОграММер
  № 8  
Ответить с цитированием
ЗлОй ПрОграММер

Регистрация: Nov 2010
Сообщений: 434
вообщем получилось несколько фоток грузить, multipartURLLoader.addFile(barr, "file1.jpg", 'file1') тоесть поле не photo, а file1 нужно делать
до 6 фоток можно за раз загрузить

Старый 24.11.2011, 23:54
Dima998 вне форума Посмотреть профиль Отправить личное сообщение для Dima998 Найти все сообщения от Dima998
  № 9  
Ответить с цитированием
Dima998
 
Аватар для Dima998

Регистрация: Aug 2011
Сообщений: 121
понятно, то есть проблема решена...

Старый 25.11.2011, 02:11
ЗлОй ПрОграММер вне форума Посмотреть профиль Отправить личное сообщение для ЗлОй ПрОграММер Найти все сообщения от ЗлОй ПрОграММер
  № 10  
Ответить с цитированием
ЗлОй ПрОграММер

Регистрация: Nov 2010
Сообщений: 434
да, решена, спасиб за помощь

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

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

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


 


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


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