Для сохранения картинки на сервере, я пользуюсь этим:

Код AS3:
package as3lib.net
{
import flash.display.DisplayObject;
import flash.display.Sprite;
import flash.display.BitmapData;
import flash.utils.ByteArray;
import as3lib.images.JPGEncoder;
import flash.net.NetConnection;
import flash.events.NetStatusEvent;
import flash.net.Responder;
import flash.events.EventDispatcher;
import flash.events.Event;
public class SavingImage extends EventDispatcher
{
private var _netConnection: NetConnection;
private var _encoder: JPGEncoder;
/**
* Конструктор
* @param image Изображение
* @param gateWayURL Путь
*/
public function SavingImage(image: DisplayObject, gateWayURL: String)
{
var bmd:BitmapData = new BitmapData(image.width, image.height);
bmd.draw(image);
_encoder = new JPGEncoder(100);
var ba:ByteArray;
ba = _encoder.encode(bmd);
ba.compress();
_netConnection = new NetConnection();
_netConnection.connect(gateWayURL);
_netConnection.addEventListener(NetStatusEvent.NET_STATUS, statusEvent);
_netConnection.call('SaveImage/saveImage', new Responder( handleResult, handleError ), ba);
}
/**
* Функция обрабатывает результат, возвращенный от сервера после сохранения изображения
* @param data
*/
private function handleResult(data:Object):void
{
trace(data.status);
if (data.status == 'save_succeed')
dispatchEvent(new Event(Event.COMPLETE));
}
private function handleError():void
{
trace('error');
}
private function statusEvent(e:NetStatusEvent):void
{
trace(e.info.details);
}
}
}
Серверная часть:

PHP код:
<?php
class SaveImage {
public function __construct() {
}
function saveImage($ba) {
$response = array();
$data = $ba->data;
if(function_exists(gzuncompress)) {
$data = gzuncompress($data);
} else {
trigger_error ("gzuncompress method does not exists, please send uncompressed data", E_USER_ERROR);
}
if ( file_put_contents("rawdata.jpeg", $data) ) {
$response['status'] = 'save_succeed';
} else {
$response['status'] = 'save_error';
}
return $response;
}
}
?>