php接收二進位檔案轉換成圖片,php://input
$GLOBALS['HTTP_RAW_POST_DATA']
as3 代碼
var bitmapData:BitmapData = new BitmapData(drawWidth,
drawHeight);//的到BitmapData
var myMatrix:Matrix = new Matrix(1, 0, 0, 1, drawWidth/ 2, drawHeight/
2);//改變中心點
bitmapData.draw(Con_mc, myMatrix);//繪製位元影像資料
var encoder:JPGEncoder = new JPGEncoder(80);
var bytes:ByteArray = encoder.encode(bitmapData);//得到二進位位元影像資料
var request = new URLRequest("detail.php");
request.data = bytes;
request.method = URLRequestMethod.POST;
request.contentType = "application/octet-stream";
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, completeHandler);
loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
loader.load(request);//發送請求
//flash得到 php返回的資料代碼
private function completeHandler(Evt:Event):void
{
var callBack:String = Evt.currentTarget.data;
}
detail.php代碼
<?php
$filename="teststream.jpg";//要產生的圖片名字
if
(!empty($GLOBALS["HTTP_RAW_POST_DATA"]))
{
$jpg =
$GLOBALS["HTTP_RAW_POST_DATA"];//得到post過來的二進位未經處理資料
$file =
fopen("cache/pic/".$filename,"w");//開啟檔案準備寫入
fwrite($file,$jpg);//寫入
fclose($file);//關閉
}
?>
$data = $GLOBALS['HTTP_RAW_POST_DATA'];
if(!empty($data)){
$now = date("YmdHis"); //給圖片產生 名稱
$path = "admin/uploads/"; //定義上傳路徑 他是相對於 detail.php 的檔案路徑
if(!file_exists($path.$now.".jpg")){
$fo = fopen($path.$now.".jpg","w");
if(fwrite($fo,$data) === false){
$flag = "0";
}else{
$flag = $now.".jpg";
}
echo $flag;exit;//將檔案名稱返回給flash
}