我是Flex的新手,无法弄清楚如何将二进制数据作为POST请求的主体发送到服务器。 HTTPService组件似乎不支持这一点。 FileReference似乎不支持通过Flex API设置数据。
不幸的是,stackoverflow.com上类似问题的答案并不是很有希望。非常感谢任何新的指针,非常感谢!
- 安德烈亚斯
答案 0 :(得分:3)
使用URLLoader
和URLRequest
类发布。
var urlLoader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest(url);
request.data = binaryData;
request.method = URLRequestMethod.POST
urlLoader.load(request);
答案 1 :(得分:1)
我从未使用过Flex,但我想你需要使用类似http://en.wikipedia.org/wiki/Uuencoding
之类的东西在ascii中对二进制数据进行编码答案 2 :(得分:1)
确实,Flex的HTTPService不支持不同的enctype。我找到并使用的一个很好的替代方案是在http://code.google.com/p/in-spirit/source/browse/#svn/trunk/projects/MultipartURLLoader/ru/inspirit/net找到的ru.inspirit.net.MultipartURLLoader(麻省理工学院许可证)。效果很好! :)
答案 3 :(得分:0)
根据您的目标,您可能需要考虑使用AMF对象。 谷歌“flex动作脚本” 假设您控制服务器。 Zend AMF是一个非常好的PHP AMF实现。