Показать сообщение отдельно
Старый 15.07.2013, 18:08
sadrbox вне форума Посмотреть профиль Отправить личное сообщение для sadrbox Найти все сообщения от sadrbox
  № 1  
Ответить с цитированием
sadrbox

Регистрация: Jul 2013
Сообщений: 2
По умолчанию Загрузка изображения во Flash, изменить размер и сохранить на сервере

Задача:
  • Выбрать файл на локальном компьютере
  • Изменить размер изображения
  • Отправить на сервер для сохранения
Обработка и сохранение на сервере PHP (с этим проблем нет).


Искал везде но не нашел конкретное решение этой задачи.
Я недавно начал изучать AS3 прошу строго не судить.

Код AS3:
package  {
 
	//import (все необходимые классы)
 
	public class Main extends MovieClip {
 
		private var URLRequest:URLRequest;
		private var file:FileReference;
 
		private var bmp:BitmapData;
		private var loader:Loader;
 
		public function Main():void
		{
			loader = new Loader();
 
			URLRequest = new URLRequest();
			URLRequest.url = "upload.php";
			URLRequest.method = URLRequestMethod.POST;
 
			file = new FileReference();
			file.addEventListener(Event.SELECT, select);	
 
			browse_btn.addEventListener(MouseEvent.CLICK, browse);
		}
 
	// выбрать файл
		public function browse(e):void
		{
			var filter:FileFilter = new FileFilter('Изображения: (*.jpg, *.jpeg, *.gif, *.png)','*.jpg;*.jpeg;*.gif;*.png');
			file.browse([filter]);
		}
 
	// загрузить изображение во флэш
		public function select(e):void
		{
			file.addEventListener(Event.COMPLETE, fileLoaded);
			file.load();
		}					
 
		public function fileLoaded(e):void
		{
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imgResize);
 
			//какой вариант лучше использовать ?
				loader.loadBytes(e.target.data);
			// или
				loader.loadBytes(file.data);
		}
	// изменить размер изображения
		public function imgResize(e):void
		{
 
			// какой вариант использовать ?
				loader.width = 300;
				loader.scaleY = loader.scaleX;
			// или
				bmp:BitmapData = BitmapData(loader.traget.content as Bitmap);
				bmp.width = 300;
				bmp.scaleY = bmp.scaleX; 
 
				upload();
		}
	// отправка изображения на сервер
		public function upload():void
		{
			file.upload(); // не срабатывает так как до этого было вызвано load();						
		}		
	}
 
}
Как решение: отправка и изменение размера изображения на сервере средствами PHP - не предлагать.
Буду очень благодарен за конкретные примеры с кодом.