2008-12-18 34 views
2

我使用的HTTPService与POST操作提交Base64编码的文件在POST获得进步(从位图数据所采取的应用程序中),但我真的可以做到与得到的进度一些想法POST操作(例如像FileReference.upload())。中的Flex/AS3使用的HTTPService

我不认为这是可能的,但如果是(通过任何方式,我愿意改变我的设置,以获得这一点)这将是真棒。

回答

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标记,只需在您的actionscript中获取HTTPService对象并使用上述代码即可。

+0

这是一个很好的答案下载信息,但问题是关于上传。 – 2009-06-16 14:08:55

0

这是不可能的HTTPService。它唯一的事件是result,faultinvoke(除了不相关的继承事件activatedeactivate)。

要获取有关上载过程的进度信息,服务器必须提供信息,这需要在操作期间在服务器和客户端之间进行通信的方式,这不适用于常规的HTTP POST操作。

一个选项可能是在服务器上创建一个对象,只要服务器开始从客户端接收POST数据就会实例化一个对象。然后,它会跟踪进度并将该数据展示给服务器端应用程序的其余部分。然后你的客户可以启动一个轮询系统来请求该特定变量的值。

似乎是一种牵强的选择,虽然...