Flash AS3 PNGEncoder с Base64 и PHP не работает - PullRequest
0 голосов
/ 24 августа 2011

Я пытаюсь использовать PNGEncoder с dynamicfash Base64 для отправки строки Base64 в PHP и сохранения файла PNG, но по какой-то причине я не могу понять, что файл PNG никогда не будет читаемым.Он существует и имеет размер (содержит данные), но не может быть открыт чем-либо, поэтому не является допустимым файлом png.Вот мой код ...

var target:MovieClip = new MovieClip();
target.graphics.beginFill(0xff0000,5.0);
target.graphics.drawRect(0,0,100,100);
target.graphics.endFill();

var bdata:BitmapData = new BitmapData(100, 100);            
bdata.draw(target);  
var stream:ByteArray = PNGEncoder.encode(bdata);             
var byteArrayAsString:String = Base64.encodeByteArray(stream);

var request:URLRequest = new URLRequest("pngsave.php");
request.method = URLRequestMethod.POST;
var variables:URLVariables = new URLVariables();
variables.fileName = "testing.png";
variables.image = byteArrayAsString;
request.data = variables;
navigateToURL(request, "_blank");

и код PHP ...

<?php
header('Content-Type: image/png');
header("Content-Disposition: attachment; filename=".$_POST['fileName']);

echo base64_decode($_POST["image"]);
?>

Есть идеи, что я здесь не так делаю?

1 Ответ

0 голосов
/ 24 августа 2011

При использовании FlashPlayer 10 (уровень внедрения> 95%) вам не нужно отправлять данные png на страницу php. Просто используйте FileReference.save() вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...