Vous allez devoir utiliser un HttpService pour publier les données sur une page de votre site Web. Quand j'ai implémenté ceci, j'ai posté les données de l'image sous la forme d'une chaîne codée Base64 sur une page PHP qui utilisait la bibliothèque GD pour l'enregistrer dans un fichier png sur le serveur. Voici un exemple simplifié de ce que mon code ressemblait
Flex code
public function saveImg():void{
var bd:BitmapData = new BitmapData(mycanvas.width,mycanvas.height);
bd.draw(mycanvas);
var ba:ByteArray = PNGEncoder.encode(bd);
var encoded:String = Base64.encodeByteArray(ba);
var objSend:Object = new Object;
objSend.data = encoded;
objSend.filename = _imgResult;
writeImage.send(objSend);
}
<mx:HTTPService id="writeImage" url="/saveImage.php" method="POST" resultFormat="text" result="resultHandler(event)"/>
fichier PHP (saveImage.php)
<?php
//check for the posted data and decode it
if (isset($_POST["data"]) && ($_POST["data"] !="")){
$data = $_POST["data"];
$data = base64_decode($data);
$im = imagecreatefromstring($data);
}
//make a file name
$filename = "test"
//save the image to the disk
if (isset($im) && $im != false) {
$imgFile = "/etc/www/html/".$filename.".png";
//delete the file if it already exists
if(file_exists($imgFile)){
unlink($imgFile);
}
$result = imagepng($im, $imgFile);
imagedestroy($im);
echo "/".$filename.".png";
}
else {
echo 'Error';
}
?>
Du côté flex J'utilise le utilty de Base64Encode de dynamicflash , mais maintenant qu'il y en a un intégré dans Flex, vous pouvez l'utiliser à la place. Dans votre configuration php, vous devez vous assurer que la bibliothèque GD est activée pour que vous puissiez sauvegarder l'image.
Bien sûr, il s'agit d'un exemple très simple qui ne tient pas compte de toutes les questions de sécurité et de traitement des erreurs nécessaires, mais qui devrait vous fournir une bonne base de départ.
thnx, c'était ce que je cherchais! – Chetan
Thnx, ça a marché –