Сегодня вечером я получал ту же ошибку от Zend AMF, делая то же самое с кодом, который ранее работал в AMF. Вот что у меня работает. Единственный бит, который я отличаю от вашего кода, это то, что я передаю только ByteArray Zend, и я явно устанавливаю ObjectEncoding.
Я продолжал получать пустые jpgs на сервере, потому что я читал в другом месте, что мне нужно было сделать -> данные, чтобы добраться до данных 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;
}