Je dois pouvoir charger une image jpeg/png à partir du disque et l'afficher en flex et l'envoyer à un serveur en tant que chaîne encodée en base64. Mais une fois le fichier image chargé, dans mon objet flash.display.LoaderInfo
, la propriété bytes
(type de ByteArray
) contient plus d'octets que le contenu du fichier.Flash Loader et ByteArray
Exemple: Taille du fichier image: 3089 flash.display.LoaderInfo.bytesTotal: 3089 flash.display.LoaderInfo.bytes.length: 3155
Comme je l'ai besoin de coder la flash.display.LoaderInfo.bytes
dans la chaîne base64, i Je ne sais pas quelle partie de l'objet ByteArray je dois envoyer au serveur. Je ne veux pas dessiner le contenu bytearray dans une image Bitmap et le ré-encoder comme jpg car je dois conserver la qualité d'origine du fichier.
Merci
du code:
private function onDataLoadComplete(event:Event):void {
var encoder:Base64Encoder = new Base64Encoder();
//var imagePartBytes:ByteArray = new ByteArray();
//imagePartBytes.writeBytes(event.target.bytes, 0, event.target.bytesTotal);
//imagePartBytes.writeBytes(event.target.bytes, 0, event.target.bytes.length);
//imagePartBytes.writeBytes(event.target.bytes, event.target.bytes.length-event.target.bytesTotal, event.target.bytesTotal);
encoder.encodeBytes(event.target.bytes);
var imagePart:String = encoder.flush();
trace(imagePart);
data = fileName+";"+event.target.contentType+";"+imagePart;
_changed = true;
}
Ok, je vous en prie. Bon vous trouvez votre problème. – Patrick