我需要將截圖從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服務器上。 –