PDA

Просмотр полной версии : Сохранить картинку на сервер в AS2.0


IlVin
29.10.2007, 18:26
Здравствуйте, коллеги!

Случился у меня секс по поводу "заставить AS2 сохранить картинку на сервер". Решение есть, но оно какое-то кривоватое, точнее не совсем прямое...
Основная цель сохранялки - минимизировать трафик между флешкой и сервером.
Пошел "в лоб" - припомнил, что BASE64 просачиывается через стандартный urlencode и решил закодировать данные картинки в BASE64 и пост запросом передать на сервер... Выигрыш нешуточный планируется - увеличение трафика всего на 33% (вместо стандартных в 2 раза) !

// Кодируем хозяйство в BASE64
var b64s:String = new String('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789*-');
var b64a:Array = b64s.split('');


var rbw:Number=resultBtp.width;
var rbh:Number=resultBtp.height;

// Запихиваем в массив ширину и высоту
var sBMP:Array = new Array();
sBMP.push( b64a[(rbw>>6)&0x3f]+b64a[(rbw&0x3f)]+b64a[(rbh>>6)&0x3f]+b64a[(rbh&0x3f)] );

for(var i=0;i<rbw;i++){
for(var j=0;j<rbh;j++){
var t:Number = resultBtp.getPixel32(i,j) & 0x00FFFFFF;
sBMP.push( b64a[(t>>18)&0x3f]+b64a[(t>>12)&0x3f]+b64a[(t>>6)&0x3f]+b64a[t&0x3f] );
}
}

...

outData.data = "<pic>"+sBMP.join('')+"</pic>";
outData.sendAndLoad(_root.scripts.imgsaver,inData,"POST");


Запускаем, смотрим и обламываемся :(
Символы '*-' не проходят флешовый urlencoder (а когда сохраняется белое, получаются толпы этих символов :eek: ).

Внимание вопрос:
Как в AS2 отправить POST запрос и сделать так, чтобы параметры не urlencod'ились ?

С превеликим нетерпением жду решения или ваших соображений по этой шишковатой теме.
:umnik2:

NikolyA
29.10.2007, 22:01
подобная тема уже как-то поднималась, и рассматривались сохранения также, а вообще, лучше все же использовать php для сохранения картинки на сервер, вроде и траффика затрачивает немного, будет желание подкину линков для решения своей проблемы, если решения не найдешь

crazyone
07.11.2007, 11:35
Подожди, что значит - не проходят? Экранятся?
Ну попробуй заменить эти символы на что-либо на клиентской стороне, а потом обратно на серверной.
Думается мне - урленкод не обойти - иначе не получится данные передать, специфика хттп запросов и все такое...

olexandr
07.11.2007, 13:47
я недавно делал проект, в котором обрабатывал картинку попиксельно и передавал данные на сервер, где они слаживались пхп-скриптом в jpg-файл

если надо, пиши в аську 375965515 - поделюсь исходником

Poohorik
14.11.2007, 22:20
http://www.actionscripts.org/forums/showthread.php3?t=90159