我正在编写将图像与一些元数据一起上传到服务的功能,该服务期望使用以 base64 编码的图像进行 POST 操作。但是,图像数据在发布到服务器时似乎会被破坏,并且不会产生有效的图像。我选择使用 URLRequest 框架而不是 HTTPService,因为该服务返回用户想要保存的内联下载。
在此 URLRequest 调用中是否存在我错误地处理编码的地方?
public function imageExportHandler():void
{
trace(this);
var request:URLRequest = new URLRequest();
request.method = URLRequestMethod.POST;
request.url = imageExportServiceUrl;
var params:Object = {
image: encodeImageBase64(imageData),
name: StringUtil.substitute("map-{xmin},{ymin}-{xmax},ymax}", imageExtent),
format: Model.instance.imageExportModel.selectedFormat
};
request.data = new URLVariables(StringUtil.substitute("image={image}&format={format}&name={name}", params));
navigateToURL(request, "_blank");
}
private function encodeImageBase64(toEncode:BitmapData):String
{
var pngEncoder:PNGEncoder = new PNGEncoder();
var data:ByteArray = pngEncoder.encode(toEncode);
var base64Encoder:Base64Encoder = new Base64Encoder();
base64Encoder.encodeBytes(data);
return base64Encoder.flush();
}