Сохранение состоит из двух частей:
1 часть. Флэш отправляет уже закодированную в jpg картинку побайтово через bytearray
[cc lang=»ActionScript3″] function saver():void {
createName = ‘mypict.jpg’; //—имя картинки при сохранении
outputpath=’images/’; //—папка, в которую будут сохранятся картинки
var bmd:BitmapData=new BitmapData(ширина,высота); //—создаем bitmapdata
bmd.draw(интересующий нас мувик); //—рисуем в битмапе интересующий мувиклип
var byteArray : ByteArray = new JPGEncoder(85).encode(bmd); //—в массив кодированное изображение? 85 — качество.
var urlRequest : URLRequest = new URLRequest();
urlRequest.url = ‘saver.php?path=’+outputpath; //—php скрипт, который будет сохранять
urlRequest.contentType = ‘multipart/form-data; boundary=’ + UploadPostHelper.getBoundary();
urlRequest.method = URLRequestMethod.POST;
urlRequest.data = UploadPostHelper.getPostData(createName, byteArray);
urlRequest.requestHeaders.push( new URLRequestHeader( ‘Cache-Control’, ‘no-cache’ ) );
var urlLoader : URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
urlLoader.addEventListener( Event.COMPLETE, onImageCreated); //—функция обработчик события создания фотки
urlLoader.addEventListener( ProgressEvent.PROGRESS, onImgCreateProgress); //—функция обработчик процесса загрузки фотки
urlLoader.load(urlRequest);
}
function onImgCreateProgress(e:ProgressEvent):void {
trace(‘загружено: ‘, String(Math.round(e.bytesLoaded*100/e.bytesTotal)));
}
function onImageCreated(e:Event):void {
trace(‘изображение создано’);
}[/cc] 2 часть. Теперь к php скрипту saver.php — он сохраняет картинку на сервере.
[cc lang=»php»]< ?PHP
$target_path = $_REQUEST[ ‘path’ ];
$target_path = $target_path . basename( $_FILES[ ‘Filedata’ ][ ‘name’ ] );
if ( move_uploaded_file( $_FILES[ ‘Filedata’ ][ ‘tmp_name’ ], $target_path ) ) {
echo «Файл » . basename( $_FILES[ ‘Filedata’ ][ ‘name’ ] ) . » был загружен;»;
}
else {
echo «Возникли ошибки при сохранении»;
}
//—будем вести небольшой лог
$res=»———————————————————————- \n»
.»Datetime: «.date(«d.m.y H:i»).» \n»
.»target path: «. $target_path .» \n»
.»tmp name: «.$_FILES[«Filedata»][«tmp_name»].» \n»
.»name: «.$_FILES[«Filedata»][«name»].» \n»
.»size: «.$_FILES[«Filedata»][«size»].» \n»
.»type: «.$_FILES[«Filedata»][«type»].» \n»
.»error: «.$_FILES[«Filedata»][«error»].» \n»
.»———————————————————————- \n \n»;
$fp = fopen(«uplog.txt»,»a»);
fwrite($fp, $res);
fclose($fp);
?>[/cc] Необходимые импорты:
[cc lang=»ActionScript3″] import flash.utils.getQualifiedClassName;
import com.adobe.images.JPGEncoder;
import flash.net.URLRequest;
import flash.net.URLRequestMethod;
import flash.net.navigateToURL;
import flash.net.URLVariables;
import flash.net.URLRequestHeader
import flash.net.URLLoader; [/cc] Впринципе все. as3 9 плеер.

Небольшое дополнение: для сохранения в PNG вместо [cc lang=»ActionScript3″]var byteArray : ByteArray = new JPGEncoder(85).encode(bmd);[/cc]

необходимо прописать [cc lang=»ActionScript3″]var byteArray : ByteArray = new PNGEncoder().encode(bmd);[/cc]

и подключить библиотеку  http://code.google.com/p/as3corelib/

[ratings]