【发布时间】:2014-01-09 07:51:04
【问题描述】:
我需要将 Flash 中的屏幕截图保存到我的本地驱动器上。由于某些限制,我很遗憾无法使用 FileReference,因为它会生成一个对话框(任何直接在本地保存的方式?)或 FileStream(AdobeAir),因为我仅限于 SWF。
所以我决定尝试使用 PHP 来完成这项工作。
AS3
private function takePhoto():void {
var bitmapData:BitmapData = new BitmapData(800, 650);
var encoder:JPGEncoder = new JPGEncoder(100);
var byteArray:ByteArray;
var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");
bitmapData.draw(camHolder);
byteArray = encoder.encode(bitmapData);
var myRequest:URLRequest = new URLRequest("save.php");
myRequest.requestHeaders.push(header);
myRequest.method = URLRequestMethod.POST;
myRequest.data = byteArray;
loader.addEventListener(Event.COMPLETE, imgSaved);
loader.load(myRequest);
}
private function imgSaved(event:Event):void {
trace(loader.data);
}
PHP
<?php
if(isset($GLOBALS["HTTP_RAW_POST_DATA"])){
$jpg = $GLOBALS["HTTP_RAW_POST_DATA"];
$filename = "test.jpg";
file_put_contents($filename, $jpg);
}
?>
我的 AS3 imgSaved 函数的跟踪的奇怪之处在于它准确地逐字返回我的 PHP 代码。在此过程中也没有保存图像。任何帮助将不胜感激!
【问题讨论】:
标签: php image actionscript-3 save local