关于draw截图上传服务器的一个问题

因需要做了一个截取显示对象图片上传至服务器,纠结了好多种方法都无果,今天突然发现了真面目:

上传图片至服务器的三种方式分别为:

1、二进制传输(BINARY)

2、字符串传输(String)

3、文件流上传(File)

第三种要借助FileReference,但是在此不能用这个,所以过。就剩前面两种了,其实前面两种只是上传格式不同而已。在这只是想说遇到的用二进制流上传遇到的问题:

最开始用URLVariables + 将JPGEncoder压缩成的二进制流当做data参数来上传始终没法接收到。后又将URLVariables 去掉,将数据直接放在URLRequest的data里,还是不行。经过再三折腾,发现一定要将

URLRequest的contentType设置成"application/octet-stream"才可以,那么正确的方式应该是:

   1: var jg:JPGEncoder = new JPGEncoder(100);
   2: var bd:ByteArray = jg.encode(/*数据源bitmapdata*/);
   3: //var pngByte:ByteArray=PNGEncoder.encode(_firstPgBmd);
   4: var loader:URLLoader = new URLLoader();
   5: var url:URLRequest=new URLRequest(/*url*/);
   6: url.data=bd;
   7: url.method=URLRequestMethod.POST;
   8: url.contentType = "application/octet-stream";
   9: loader.addEventListener(Event.COMPLETE, onCom);
  10: loader.load(url);

关于上传图片的三种方式比较详细的blog地址:http://www.cnblogs.com/meteoric_cry/archive/2011/06/18/2084371.html

posted on 2015-01-13 17:01  L . W  阅读(180)  评论(0编辑  收藏  举报