PNG偶尔会丢失从闪存到服务器的数据
问题描述:
我们一直在为此付出沉重的代价,并希望得到一些帮助!PNG偶尔会丢失从闪存到服务器的数据
我们的用户在Flash中创建TIFS,并通过HTTP POST以Base64发布的图像数据,与接收它的ASPX服务器:
byte[] bytes = Convert.FromBase64String(Request.Form["ImgData"] );
我们发现这个方法的作品,但在20-30一个或者如此情况,服务器收到的数据量与客户声称发送的数据量不同。 ASPX代码:
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;
答
唯一的原因,我能想象(假设每次使用作品的权利库)是的base64符号url编码,但不urldecoded。 Base64有'+'在post传输过程中会被urlencoded,我不确定这个ASPX库是否自己实现了urldecode。在这种情况下,即使对于几个字节的随机数据,错误的概率也高于1/25。但它可能是你使用小尺寸的非随机测试数据。
+0
相同的PNG可以发送并且第一次失败,但是第二次通过。这让我认为这与Base64编码无关,不是吗? – user1512545 2012-07-13 04:01:22
这是很好的知道,以节省流量,但我不知道它是否导致偶尔的转移失败。我们使用的软件包: 和 和com.hurlant.util.Base64; – user1512545 2012-07-13 04:02:14
缓存问题很有趣。我会研究这一点。你推荐一种更可靠的方式从Flash传输图像数据?如果有帮助,我很乐意改变它! – user1512545 2012-07-13 20:01:23