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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

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

Регистрация: Sep 2009
Сообщений: 2
По умолчанию Отправка файлов методом POST

Здравствуйте.
Есть задача:
формировать POST-запрос на адрес.
Запрос должен содержать поля file1-file5, которые содержат файлы с изображениями (JPG, PNG, BMP или GIF).
У меня есть DisplayObject, пробую это сделать так, но ничего не выходит.
Подскажите как сделать, чтоб отправлялись файлы.

Код AS3:
var profile:Object = new Object();
			for each (var field:XML in e.*) 
			{
				if(field.name().toString() == "upload_url")
				{
					uploadHref = field.toString();
					break;
				}
 
			} 
 
 
			var bd:BitmapData = new BitmapData(FormPointer.ImagesFull.content.width, FormPointer.ImagesFull.content.height, true,0xFFFFFFFF);
			bd.draw(FormPointer.ImagesFull.content);
			var output:String = ""; 
			// Iterate through each of the pixels, and add their color to the output string 
			for(var i:Number=0;i<bd.width;i++) 
			{ 
				for(var j:Number=0;j<bd.height;j++) 
				{ 
					output+=bd.getPixel(j,i).toString(16); 
					for (var z=0; z<6-bd.getPixel(j,i).toString(16).length; z++) {
					output+="0";
					}
				} 
			}	
			var scriptRequest:URLRequest = new URLRequest(uploadHref);
			var header:URLRequestHeader = new URLRequestHeader("Content-Type", "multipart/form-data");
			var scriptLoader:URLLoader = new URLLoader();
			var scriptVars:URLVariables = new URLVariables();
			 scriptRequest.requestHeaders.push(header);
 
			scriptLoader.addEventListener(Event.COMPLETE, completeHandler);
			scriptLoader.addEventListener(IOErrorEvent.IO_ERROR, handleLoadError);
 
			scriptVars.file1 = output;
 
			scriptRequest.method = URLRequestMethod.POST;
			scriptRequest.data = scriptVars;
 
			scriptLoader.load(scriptRequest);
 
			function handleLoadError($evt:IOErrorEvent):void
			{
				trace("Message failed.");
			}

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

Регистрация: Feb 2008
Адрес: Череповец
Сообщений: 623
Отправить сообщение для Felicast с помощью ICQ
чета я ничего не понял: вы говорите, что отсылаете файлы, а сами в output кладете значения пикселей в строковом виде?
вы уж определитесь, или вы отправляете файлы или строку

зы: а вот это вообще АЦЦКИ ЖЖЕТ:
Код AS3:
for (var z=0; z<6-bd.getPixel(j,i).toString(16).length; z++)
__________________
я могу стать всем, если только захочу

Старый 27.09.2009, 21:37
Reckoned вне форума Посмотреть профиль Отправить личное сообщение для Reckoned Найти все сообщения от Reckoned
  № 3  
Ответить с цитированием
Reckoned

Регистрация: Sep 2009
Сообщений: 2
А как по другому?
Я уже зашился, и не понимаю как отправить POST Запросом 5 файлов.
Имея их в DisplayObject (UILoader).
Думал пикселями, но видимо не правильно думал

Добавлено через 2 минуты
Уже переделал так, посылает байты нормально.
но результат тот же :
(
Код AS1/AS2:
function GetUploadHref(e:XML)
		{
			var profile:Object = new Object();
			for each (var field:XML in e.*) 
			{
				if(field.name().toString() == "upload_url")
				{
					uploadHref = field.toString();
					break;
				}
 
			} 
 
 
			var bd:BitmapData = new BitmapData(FormPointer.ImagesFull.content.width, FormPointer.ImagesFull.content.height, true,0xFFFFFFFF);
			bd.draw(FormPointer.ImagesFull.content);
 
			var jpgEncoder:JPGEncoder = new JPGEncoder(80);
			var png_image_data:ByteArray = jpgEncoder.encode(bd);
 
			var scriptRequest:URLRequest = new URLRequest(uploadHref);
			var header:URLRequestHeader = new URLRequestHeader("Content-Type", "multipart/form-data");
			var scriptLoader:URLLoader = new URLLoader();
 
			var uv:URLVariables = new URLVariables();
 
			uv.file1 =  Base64.encodeByteArray(png_image_data);;
 
			scriptLoader.addEventListener(Event.COMPLETE, completeHandler);
			scriptLoader.addEventListener(IOErrorEvent.IO_ERROR, handleLoadError);
 
 
 
			scriptRequest.method = URLRequestMethod.POST;
			scriptRequest.data = uv;
			scriptRequest.requestHeaders.push(header);
			scriptLoader.load(scriptRequest);
 
			function handleLoadError($evt:IOErrorEvent):void
			{
				trace("Message failed.");
			}
		}

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

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

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


 


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


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