Amfphp1.9 非beta版 相关情况

[size=medium]1.编码问题[/size]
Fatal error: Uncaught exception 'VerboseException' with message 'Cannot modify header information
修正办法:
采用ANSI编码(这种搞起来,转换比较麻烦)或UTF8 no BOM,而非UTF8 with BOM
存为UTF8 no BOM模式:
[color=red]DW参见[/color]:http://www.googlephp.cn/archives/tag/cannot-modify-header-information
[color=red]DzSoft如图[/color]:
[img]http://dl.iteye.com/upload/attachment/343744/21de7a9f-c822-353b-91df-81c27c4209e9.png[/img]

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

[size=medium]2.NetStatusEvent[/size]
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();//把它注释掉
}

[size=medium]3.Save byteArray into Mysql with Amfphp[/size]
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);
}
}
}


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;
}

}
?>


这样能存入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']);
}

}
?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值