Amfphp1.9 非beta版 相干情况

WBOY
Freigeben: 2016-06-13 13:01:46
Original
899 Leute haben es durchsucht

Amfphp1.9 非beta版 相关情况
1.编码问题
Fatal error: Uncaught exception 'VerboseException' with message 'Cannot modify header information
修正办法:
采用ANSI编码(这种搞起来,转换比较麻烦)或UTF8 no BOM,而非UTF8 with BOM
存为UTF8 no BOM模式:
DW参见:http://www.googlephp.cn/archives/tag/cannot-modify-header-information
DzSoft如图:
 Amfphp1.9 非beta版 相干情况

另外修改根目录下gateway.php (line127):
//$gateway->setCharsetHandler("utf8_decode", "ISO-8859-1", "ISO-8859-1");//注释掉,改为:
$gateway->setCharsetHandler("none", "ISO-8859-1", "ISO-8859-1");

2.NetStatusEvent
Flex/Flash 则报:
Error #2044: 未处理的 NetStatusEvent:。 level=error, code=NetConnection.Call.BadVersion
修正办法:
根目录下:
gateway.php(Line 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();//把它注释掉
}
Nach dem Login kopieren

3.Save byteArray into Mysql with Amfphp
AS code:
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);
		}
	}
}
Nach dem Login kopieren


Php Code:
<?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;
}

}
?>
Nach dem Login kopieren


这样能存入Mysql数据库了,但在返回给flash或flex时,会出现convert报错,这时需要返回前在map(类映射)中new一下:new 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']);
	}

}
?>
Nach dem Login kopieren

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage