Flash AS3 PNGEncoder与Base64和PHP无法正常工作

时间:2011-08-23 23:43:27

标签: php actionscript-3 base64

我正在尝试使用带有dynamicfash Base64的PNGEncoder将一个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 :(得分:0)

使用FlashPlayer 10(采用率> 95%),您无需将png数据发送到php页面。只需使用FileReference.save()代替。