我正在使用带有POST操作的HTTPService来提交Base64编码文件(取自应用程序中的位图数据),但我真的可以了解POST操作的进度(例如FileReference.upload) ())。
我不认为这是可能的,但如果是这样的话会很棒(通过任何方式,我都愿意改变我的设置来获得这个)。
答案 0 :(得分:8)
不要使用HTTPService。使用URLRequest,URLLoader和URLVariables。
如果您使用HTTPService标记,请使用它并将其替换为填充了类似...的脚本标记。
private function forYou() : void{
var req : URLRequest = new URLRequest("PUT YOUR URL HERE")
var loader : URLLoader = new URLLoader();
var params : URLVariables = new URLVariables();
params.WHATEVER = WHATEVER YOU WANT IT TO BE;
req.data = params;
req.method = URLRequestMethod.POST;
loader.addEventListener(ProgressEvent.PROGRESS, YOUR LISTENER FUNCTION NAME);
loader.load(req);
}
将此函数名称分配给根标记的creationComplete属性。
如果您没有使用HTTPService标记,只需在您的动作脚本中获取HTTPService对象并使用上述代码。
答案 1 :(得分:0)
答案 2 :(得分:0)
HTTPService无法做到这一点。它唯一的事件是result
,fault
和invoke
(除activate
和deactivate
的非相关继承事件之外。
要获取有关上载过程的进度信息,服务器必须提供信息,这将需要在操作期间服务器和客户端之间的通信方式,这不适用于常规HTTP POST操作。
一个选项可能是在服务器上创建一个对象,只要服务器开始从客户端接收POST数据,该对象就会被实例化。然后它会跟踪进度并将该数据公开给服务器端应用程序的其余部分。然后,您的客户端可以启动一个轮询系统,该系统将请求该特定变量的值。
虽然看起来像是一种牵强附会的选择......