我需要将截图从Flash保存到本地驱动器。由于受到一些限制,我很遗憾无法使用FileReference,因为它会产生一个对话框(以任何方式直接保存在本地?)或FileStream(AdobeAir),因为我仅限于SWF。AS3通过PHP保存图像
所以我决定尝试使用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代码字。在这个过程中也没有保存图像。任何帮助,将不胜感激!
谢谢!让我试试这个。 – user1234567
嗨srvikram13,如果屏幕截图是在flash内部拍摄的,并使用jpgencoder进行编码的,我会如何将其上传到网络服务器上? – user1234567
早就回来了,我做了一个类似的应用程序。我现在没有这个代码。但是,您可以尝试使用[** this **](http://www.beautifycode.com/webcam-flash-php-upload-to-server)教程中给出的PHP代码将图像保存到Web服务器上。 –