我需要能够从磁盘加载一个jpeg/png图像并在flex中显示它,并以base64编码字符串的形式将其发送到服务器。但是一旦加载了图像文件,在我的flash.display.LoaderInfo
对象中,bytes
属性(类型为ByteArray
)包含的字节多于文件内容。Flash Loader和ByteArray
示例: 图像文件大小:3089 flash.display.LoaderInfo.bytesTotal:3089 flash.display.LoaderInfo.bytes.length:3155
因为我需要进行编码以base64字符串3210,我不知道我必须发送给服务器的哪部分ByteArray对象。 我不想将bytearray内容绘制成位图图像,并将其重新编码为jpg,因为我必须保持文件的原始质量。
感谢
一些代码:
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;
}
好的不客气。很好,你发现你的问题。 – Patrick 2009-12-18 10:44:36