1

ZendAMF 経由で PHP にオブジェクトを送信する ActionScript 3 アプリケーションがあります。オブジェクトには、画像からの byteArray が含まれています。

現在、次のように byteArray を Blob に保存しています。

$ba = new Zend_Amf_Value_ByteArray ( $im->bArray );
$data = mysql_real_escape_string ( $ba->getData () );

$query = "INSERT INTO  image ( byteArray ) VALUES ( '".$data."' );";
$result = mysql_query($query);
$error = mysql_error();

if($error)
 return "Error: " . $error;
else
 return true;

これは正常に動作しているようで、DB でイメージを確認できます (これはローカルで実行されており、SequelPRO を使用して DB を表示しています)。

問題は、byteArray を Flash に送り返すときに、Flash が byteArray の長さを 0 として報告することです。

PHPでの私のreturnメソッドは次のとおりです。

$result = mysql_query ( 'SELECT * FROM image');
$array = array();

while ( $row = mysql_fetch_assoc ( $result ) )
{
 $ba = new Zend_Amf_Value_ByteArray ( $row['byteArray'] );

 $image = new Image ();
 $image->id = $row['id'];
 $image->file = $row['filePath'];
 $image->bArray = $ba->getData();

 array_push ( $array, $image );
}

return ( $array );

これを行うより良い方法はありますか?どんな助けでも大歓迎です。

ありがとうございました

4

1 に答える 1

1

の簡単なグーグルから、Zend_Amf_Value_ByteArrayバイト配列を適切にシリアル化できないという問題があるという点で、Zend自体に問題がある可能性があるようです。

この問題について話している Zend フォーラムへのリンクをいくつか示します。

  1. Zend_Amf が Zend_Amf_Value_ByteArray インスタンスを正しくシリアライズしない
  2. ByteArray は Zend_Amf_Value_ByteArray にシリアル化されません。代わりに文字列が与えられます
  3. Flex 4 / PHP データ中心の写真転送

頑張ってください。これがあなたの役に立てば幸いです。

于 2010-12-03T20:11:01.950 に答える