Вам нужно будет использовать HttpService для публикации данных на странице вашего сайта.Когда я реализовал это, я разместил данные изображения в виде строки в кодировке Base64 на странице PHP, которая использовала библиотеку GD для сохранения их в png-файле на сервере.Вот упрощенный пример того, как мой код выглядел
Flex Code
public function saveImg():void{
var bd:BitmapData = new BitmapData(mycanvas.width,mycanvas.height);
bd.draw(mycanvas);
var ba:ByteArray = PNGEncoder.encode(bd);
var encoded:String = Base64.encodeByteArray(ba);
var objSend:Object = new Object;
objSend.data = encoded;
objSend.filename = _imgResult;
writeImage.send(objSend);
}
<mx:HTTPService id="writeImage" url="/saveImage.php" method="POST" resultFormat="text" result="resultHandler(event)"/>
PHP-файл (saveImage.php)
<?php
//check for the posted data and decode it
if (isset($_POST["data"]) && ($_POST["data"] !="")){
$data = $_POST["data"];
$data = base64_decode($data);
$im = imagecreatefromstring($data);
}
//make a file name
$filename = "test"
//save the image to the disk
if (isset($im) && $im != false) {
$imgFile = "/etc/www/html/".$filename.".png";
//delete the file if it already exists
if(file_exists($imgFile)){
unlink($imgFile);
}
$result = imagepng($im, $imgFile);
imagedestroy($im);
echo "/".$filename.".png";
}
else {
echo 'Error';
}
?>
С гибкой стороны я нахожусьиспользуя утилиту Base64Encode из dynamicflash, но теперь, когда есть одна, встроенная в flex, вы можете использовать ее вместо этого.В вашей конфигурации php вам нужно будет убедиться, что у вас включена библиотека GD, чтобы вы могли сохранить образ.
Конечно, это очень простой пример и не учитывает всю обработку ошибок и безопасностьпроблемы необходимы, но должны предоставить вам хорошую основу для начала работы.