PHP / Flash保存图像停止工作

时间:2014-04-23 11:12:29

标签: php actionscript-3 flash actionscript

年龄前我发现了一个从Flash中获取数据的脚本,并将Flash阶段保存为图像...由于某种原因,此脚本不再起作用,我不知道为什么它没有被修改

这是剧本;

if(isset($ GLOBALS [“HTTP_RAW_POST_DATA”])){

// get bytearray
$jpg = $GLOBALS["HTTP_RAW_POST_DATA"];

// add headers for download dialog-box
header('Content-Type: image/jpeg');
header("Content-Disposition: attachment; filename=".$_GET['name']);
echo $jpg;

} else echo'发生错误。';

这是ActionScript;

function createPNG(fileName:String) {     var PNGSource:BitmapData = new BitmapData(stage.stageWidth,stage.stageHeight,true,0);     PNGSource.draw(Pimp_mc);

var PNGStream:ByteArray = PNGEncoder.encode(PNGSource); 

var header:URLRequestHeader = new URLRequestHeader ("Content-type", "application/octet-stream");

//Make sure to use the correct path to jpg_encoder_download.php
var PNGURLRequest:URLRequest = new URLRequest ("jpg_encoder_download.php?name=" + fileName + ".png");       
PNGURLRequest.requestHeaders.push(header);              
PNGURLRequest.method = URLRequestMethod.POST;               
PNGURLRequest.data = PNGStream;

var PNGURLLoader:URLLoader = new URLLoader();       
navigateToURL(PNGURLRequest, "_self");

}

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:1)

这是IE中的一个问题,因为它已更新到Flash 13.0.0.214,因此不仅仅是Chrome问题,而且即使使用上述解决方法,也很可能是一个问题。

我们已经开发了一个内部工具,因此我将使用ExternalInterface.call进行测试(" window.open",url);如上所述。

此致 利安

答案 1 :(得分:1)

Flash 13.0.0.214在发送标头信息时中断了navigateToURL()。尝试删除标题。参考:https://forums.adobe.com/message/6391632

(不要认为此修复程序在Win11中使用Flash 13.0.0.214在IE11中工作(除非激活了开发人员工具),但Chrome,FF和其他IE的效果不错。)

答案 2 :(得分:0)

Chrome上的嵌入式Flash Player似乎存在问题,称为“胡椒”。

如果你使用非嵌入式插件,它可以工作: 安装external plugin of flash for non-IE browsers,启用官方插件并在Chrome上的插件配置中禁用嵌入式插件,您将看到它有效。

要禁用插件,您需要在网址栏上输入 about:plugins ,然后按下胡椒网下方的禁用链接。检查这个截图(这是西班牙人抱歉)。

http://s22.postimg.org/er165otch/flash_players_on_chrome.gif

更改后关闭并打开浏览器再试一次。附件将显示在Firefox中。

我确信这不是一个解决方案,因为网站的用户应该手动执行,但它证明了Chrome上的问题,而不是代码中的问题。

这是Google代码页上的错误:
https://code.google.com/p/chromium/issues/detail?id=277210

在上一个链接上有一条评论说你可以打电话给: ExternalInterface.call( “window.open”,URL);