标签:
因需要做了一个截取显示对象图片上传至服务器,纠结了好多种方法都无果,今天突然发现了真面目:
上传图片至服务器的三种方式分别为:
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
标签:
原文地址:http://www.cnblogs.com/lweinking/p/4221804.html