ByteArray для MySQL из ActionScript 3 -> PHP через ZendAMF
У меня есть приложение ActionScript 3, которое отправляет объект в PHP через ZendAMF. Объект содержит 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;
Кажется, это работает нормально, и я могу видеть изображение в БД (это работает локально, и я использую SequelPRO для просмотра БД).
Проблема в том, что когда я отправляю byteArray обратно во Flash, Flash сообщает, что длина byteArray равна 0.
Вот мой метод возврата в PHP:
$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 );
Есть лучший способ сделать это? Любая помощь будет принята с благодарностью.
Спасибо
1 ответ
Просто из быстрого Google Zend_Amf_Value_ByteArray
Кажется, что может быть проблема с самим Zend в том, что у него есть проблема с неправильной сериализацией вашего байтового массива.
Вот несколько ссылок на форумы Zend, которые обсуждают эту проблему:
- Zend_Amf неправильно сериализует экземпляры Zend_Amf_Value_ByteArray
- ByteArray не сериализуется в Zend_Amf_Value_ByteArray. Вместо строки дается
- Flex 4 / PHP передачи данных, ориентированных на данные
Удачи, и надеюсь, что это поможет вам.