2010-12-01 1 views
1

У меня есть приложение ActionScript 3, которое отправляет объект на PHP через ZendAMF. Объект содержит byteArray из изображения.ByteArray to MySQL от ActionScript 3 -> PHP через ZendAMF

У меня в настоящее время сохранение 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, флэш сообщает длину 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

Просто от быстрого Гугла Zend_Amf_Value_ByteArray, кажется, что там может быть проблема с самой Зенд в том, что у него есть проблема не правильно сериализация вашего массива байт.

Вот несколько ссылок на форумах Zend, которые говорят об этой проблеме:

  1. Zend_Amf does not properly serialize Zend_Amf_Value_ByteArray instances
  2. ByteArray does not serialize to Zend_Amf_Value_ByteArray. Instead a string is given
  3. Flex 4/PHP Data-Centric Photo Transfers

удачи, и надеюсь, что это поможет вам немного.

+0

Да, старался. – Yav 2011-01-06 21:24:39