Загрузка изображения во 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 - не предлагать.
Буду очень благодарен за конкретные примеры с кодом.
|