0

我在将 ByteArray 发送到我的 Zend_Amf_server 时遇到问题。我从服务器收到一个 NetConnection.Bad.Call。如果我发送一个具有另一种数据类型的变量,那么 ByteArray 它工作正常。

我之前在 AMFPHP 中使用过相同的脚本,没有任何问题。但是对于这个项目,我真的需要它在 Zend_Amf 中工作。

AS3:

var path:String = "/images/picture.jpg";
var ba:ByteArray = jpgencoder.encode(bitmap.bitmapData);

var nc:NetConnection = new NetConnection();
nc.connect(zend_amf_server);

nc.call("Service.saveJPG", new Responder(responseHandler, errorHandler), path, ba);

PHP:

class Service{
    public function saveJPG($path, $byteArray){
             return "worked";
    }
}
4

3 回答 3

1

今晚我从 Zend AMF 得到了同样的错误,对以前在 AMF 中工作的代码做了基本相同的事情。这就是我所拥有的。我发现与您的代码唯一不同的是我只是将 ByteArray 传递给 Zend,并且我明确设置了 ObjectEncoding。

我一直在服务器上获得空的 jpg,因为我在其他地方读到了我需要做的 -> 数据以获取 ByteArray 数据。

AS3:

_service = new NetConnection();
_service.objectEncoding = ObjectEncoding.AMF3;
_responder = new Responder(this._onSuccess, this._onError);
_service.connect(zend_amf_server);

var myEncoder:JPGEncoder = new JPGEncoder( qualityValue );
var myCapStream:ByteArray = myEncoder.encode ( myBitmapSource ); // myBitmapSource is BitmapData drawn from a Sprite
this._service.call("Remote.savePhotoToServer", this._responder, myCapStream);

PHP:

function savePhotoToServer ( $pInfos )
{       
    $bytearray = $pInfos;       
    $idimage = $this->nameImage(".jpg"); // calls a private func for a new name
    return ( $success = file_put_contents("./_photos/".$idimage, $bytearray) ) ? $idimage : $success;
}
于 2009-02-26T02:23:39.117 回答
0

感谢大卫的回复,问题似乎是我向 Zend_Amf 发送了一个字节数组和一个字符串。如果我只发送 ByteArray 它工作正常并且图像被保存。

现在唯一的问题是保存图像的路径应该是可变的,我不能同时将它与 ByteArray 一起发送到我的 Amf_Server。

于 2009-02-26T10:43:00.117 回答
0

好的,我发现了问题。我在最新的 'tag' 存储库 v. 1.7.5 中使用 Zend Framework 我将 AMF 的存储库切换到了 'trunk' 存储库,现在它可以工作了。向 Zend_Amf_Server 发送数组时存在错误。

于 2009-02-27T08:35:52.443 回答