Как сохранить снимок гибкого приложения в файл с PHP и затем отобразить его в браузере? - PullRequest
1 голос
/ 05 августа 2010

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

1 Ответ

0 голосов
/ 30 марта 2011

Используйте взамен PNGEncoder .

...