ホームページ  >  記事  >  バックエンド開発  >  Amfphp1.9 非ベータ版関連情報

Amfphp1.9 非ベータ版関連情報

WBOY
WBOYオリジナル
2016-06-13 13:01:46885ブラウズ

Amfphp1.9 非ベータ版関連情報
1. エンコーディングの問題
致命的なエラー: キャッチされない例外 'VerboseException' とメッセージ「ヘッダー情報を変更できません
修正方法:
ANSI エンコーディングを使用します (この種の変換はより面倒です) またはBOM なしの UTF8、BOM ありの UTF8 ではありません
BOM なしの UTF8 モードとして保存:
DW を参照:http://www.googlephp.cn/archives/tag/cannot-modify-header-情報
図に示すように DzSoft:
Amfphp1.9 非ベータ版関連情報

ルート ディレクトリのgateway.php (line127) も変更します:
//$gateway- > setCharsetHandler("utf8_decode", "ISO-8859-1", "ISO-8859-1");//コメントアウトして次のように変更します:
$gateway->setCharsetHandler("none", "ISO- 8859- 1", "ISO-8859-1");

2.NetStatusEvent
フレックス/フラッシュ レポート:
エラー #2044: 未処理の NetStatusEvent:。 level=error, code=NetConnection.Call.BadVersion
修正方法:
ルートディレクトリ:
gateway.php(132行目)

if(PRODUCTION_SERVER)
{
//Disable profiling, remote tracing, and service browser
//$gateway->disableDebug();//把它注释掉
// Keep the Flash/Flex IDE player from connecting to the gateway. Used for security to stop remote connections.
//$gateway->disableStandalonePlayer();//把它注释掉
}

3.byteArrayを保存Amfphp を使用した Mysql
AS コード:
package 
{
	import flash.display.Sprite;
	import flash.net.NetConnection;
	import flash.net.ObjectEncoding;
	import flash.net.Responder;
	import flash.utils.ByteArray;
	import flash.display.BitmapData;

	public class Test extends Sprite
	{
		private var nc:NetConnection;
		private var rsp:Responder;

		public function Test()
		{
			rsp = new Responder(onResult,null);

			nc = new NetConnection( );
			nc.objectEncoding = ObjectEncoding.AMF3;
			nc.connect("http://127.0.0.1/AmfphpForWareHouse/gateway.php");
			nc.call("warehouse.MyPage.create",rsp,getData());
		}

		public function getData():Object
		{
			var obj:Object=new Object();
			obj.firstName = "diding";

			var bpd:BitmapData = new BitmapData(a.width,a.height);
			bpd.draw(a);

			var jpegEnc:JPEGEncoder = new JPEGEncoder(80);
			var dat:ByteArray = jpegEnc.encode(bpd);
			obj.pic = dat as ByteArray;
			return obj;
		}
		private function onResult( e: * ):void
		{
			trace(e);
		}
	}
}


Php コード:
<?php
require_once "ConnectionHelper.php";

class MyPage{

public function create($contact)
{
$GLOBALS['amfphp']['encoding']='amf3';
$times=date("Y-m-d H:i:s");
$ps1=$contact['firstName'];
$ba=$contact['pic'];
$data = $ba->data;
$data = mysql_real_escape_string($data);

$result=mysql_query("INSERT INTO userinfo (firstname,pic,addTime)VALUES ('$ps1','$data','$times')");
return $result;
}

}
?>


このようにして、Mysql データベースに保存できます。ただし、フラッシュまたはフレックスに戻ると、変換エラーが表示されます。この場合、返す前にマップ (クラス マッピング) に新しい byteArray() を作成する必要があります。たとえば、

<?php
class AppVO
{
        var $_explicitType ="vo.AppVO";
	var $id;
        var $userName;
        var $email;
        var $phone;
        var $address;
        var $pic;
        public function AppVO(){}

	public function mapObject($obj)
	{
		$this->id = $obj['id'];
		$this->userName = $obj['username'];
		$this->email = $obj['email'];
		$this->phone = $obj['phone'];
		$this->address = $obj['address'];
                $this->pic =new ByteArray($obj['pic']);
	}

}
?>

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。