2010-12-01 17 views
1

J'ai une application ActionScript 3 qui envoie un objet à PHP via ZendAMF. L'objet contient un byteArray d'une image.ByteArray à MySQL à partir d'ActionScript 3 -> PHP via ZendAMF

Je l'ai à l'enregistrement des byteArray dans un Blob comme ceci:

$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; 

Cela semble fonctionner très bien et je peux voir l'image dans la base de données (ce qui est en cours d'exécution locale et j'utilise SequelPRO pour voir la DB).

Le problème est quand j'envoie le byteArray le contenu Flash, Flash signale la longueur de byteArray 0.

Voici ma méthode de retour en 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); 

Y at-il une meilleure façon pour faire ça? Toute aide serait grandement appréciée.

Merci

Répondre

1

juste d'un rapide Google de Zend_Amf_Value_ByteArray, semble qu'il pourrait y avoir un problème avec Zend lui-même en ce qu'il a un problème non sérialisation correctement votre tableau d'octets.

Voici quelques liens vers les forums Zend qui parlent de cette question:

  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

Bonne chance, et nous espérons que cela vous aide un peu.

+0

Oui, j'essayais ça. – Yav

+0

On dirait que le tableau d'octets arrive à PHP et dans la base de données sans problème, puis je peux le sortir de la base de données et construire un objet en PHP mais quand Flash récupère l'objet, il ne voit pas le tableau d'octets tableau d'octets. – Yav