Я пытаюсь сохранить снимок компонента в моем приложении Flex, который затем отправляется в сценарий php для сохранения, а затем выплевывается обратно в окно браузера. Я не могу заставить это работать.
Вот мой код FlashBuilder:
private function saveImage():void {
var parameters:String = "snapshot=" + takeSnapshot(this);
var variables:URLVariables = new URLVariables(parameters);
var submit:URLRequest = new URLRequest("SaveImage.php");
submit.data = variables;
submit.method = URLRequestMethod.POST;
navigateToURL(submit,"_self");
}
private function takeSnapshot(component:IBitmapDrawable):String {
return ImageSnapshot.encodeImageAsBase64(ImageSnapshot.captureImage(component));
}
Вот мой экспериментальный код PHP:
$binaryData = base64_decode($_POST["snapshot"]);
$file = "mydirectory/tmp.png";
file_put_contents($file, $binaryData);
header("Content-type: image/png");
die($binaryData);
, который генерирует следующий вывод (где {путь к изображению} - это URL, где было сохранено изображение):
Изображение «{путь к изображению}» не может быть
отображается, поскольку содержит ошибки.
Он сохраняет файл .png в этот каталог, но он пустой, там ничего нет, но его размеры верны. Я подтвердил, что моментальный снимок работает, загружая его в приложение с компонентом swfLoader сразу после создания моментального снимка, поэтому я знаю, что изображение подходит перед отправкой на сервер.