Je cherche à envoyer un image vers PHP pour pouvoir la sauvegarder sur le serveur.
Voici mon code AS :
Action Script
import encoding.*;
//On fait une image de notre clip
var srcBmp:BitmapData = new BitmapData(monClip.width, monClip.height);
srcBmp.draw(monClip);
//On l'encode en jpg
var jpegEnc:JPGEncoder = new JPGEncoder(100); // qualité, entre 0 et 100
var imageData:ByteArray = jpegEnc.encode(srcBmp);
var variablesATransferer:URLVariables = new URLVariables();
variablesATransferer.monImage = imageData;
// création du loader
var monLoader = new URLLoader();
monLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
// création de l´objet URLRequest
var requeteInscription:URLRequest = new URLRequest("test.php");
// nous passons les variables dans l´url (tableau POST)
requeteInscription.method = URLRequestMethod.POST;
// associe les variables à l´objet URLRequest
requeteInscription.data = variablesATransferer;
// envoi les données de manière transparente, sans ouvrir de nouvelle fenêtre navigateur
monLoader.load(requeteInscription);
navigateToURL(requeteInscription);
code php
Action Script
if (isset($_POST['imagePanneau']) && isset($_POST['nomImage'])) {
$cheminFichier = 'images/uploads/temp/'. $_POST['nomImage'];
$fichier = fopen($cheminFichier, "w");
$fichier = $_POST['imagePanneau'];
fclose($fichier); //erreur : Warning: fclose(): supplied argument is not a valid stream resource
//imagejpeg($_POST['imagePanneau'], $cheminFichier); //erreur : Warning: imagejpeg(): supplied argument is not a valid Image resource
}
Il doit y avoir un problème avec mes variables dans le flash car si je ne fais pas navigateToURL, j'ai le message d'erreur suivant : Error: Error #2101: La chaîne transmise à URLVariables.decode() doit être une requête au format de code URL contenant des paires nom/valeur.
at Error$/throwError()
at flash.net::URLVariables/decode()
at flash.net::URLVariables()
at flash.net::URLLoader/onComplete()
Si je laisse le navigateToURL, les variables sont bien transférées et je peux toutes les utiliser avec php sauf la ByteArray justement. Comment dois-je procéder ?
Merci d'avance.
Sapher