我们对此感到困惑,希望能得到一些帮助!
我们的用户正在 Flash 中创建 TIF,并通过 HTTP POST 将 Base64 中的图像数据发布到 ASPX 服务器,该服务器通过以下方式接收它:
byte[] bytes = Convert.FromBase64String(Request.Form["ImgData"] );
我们发现该方法有效,但在 20-30 种左右的情况下,服务器接收到的数据量与客户端声称发送的数据量不同。ASP 代码:
dataLengthSentFromClient = Request.Form["dataLengthFromClient"].ToString();
<>
ReceivedBytesLength=Request.Form["ImgData"].Length.ToString();
但其他 24 次它似乎工作正常。有任何想法吗?我们不应该以这种方式将数据从 Flash 传递到服务器吗?
(这里是客户端 AS 代码) var image:BitmapData;
if (toTrim) {
tempBitmapData=new BitmapData(workingSrc.width,workingSrc.height,true,0x00000000);
tempBitmapData.draw(workingSrc);
var tempBitmap:Bitmap=new Bitmap(tempBitmapData,PixelSnapping.ALWAYS,true);
bounds=tempBitmapData.getColorBoundsRect(0xFF000000,0x00000000,false);
var letterMatrix:Matrix=new Matrix(1,0,0,1,- bounds.x,- bounds.y);
tempBitmap.transform.matrix=letterMatrix;
image=new BitmapData(bounds.width,bounds.height,true,0x00000000);
image.draw(tempBitmap,letterMatrix);
} else {
image=new BitmapData(workingSrc.width,workingSrc.height,true,0x00000000);
image.draw(workingSrc,letterMatrix);
}
var bytes:ByteArray=PNGEncoder.encode(image);
var base64Bytes:String=Base64.encodeByteArray(bytes);
var vars:URLVariables = new URLVariables();
vars.activityID=activityID;
vars.imgData=base64Bytes;
vars.dataLengthFromSarah=vars.imgData.length;
vars.activityLocation=activityLoc;
vars.op="writePNG";
if (fileName!=null) {
vars.filename=fileName;
}
// Save info about the variables passed in case we need to dump error data
dispatchEvent(new DumpPrepEvent(vars.toString()));
var url:URLRequest=new URLRequest(INTERFACE);
url.data=vars;
url.method=URLRequestMethod.POST;