我正在使用带有 POST 操作的 HTTPService 来提交 Base64 编码文件(取自应用程序中的位图数据),但我确实可以了解 POST 操作的进度(例如 FileReference.upload()) .
我不认为这是可能的,但如果它是可能的(通过任何方式,我愿意改变我的设置来获得这个)。
我正在使用带有 POST 操作的 HTTPService 来提交 Base64 编码文件(取自应用程序中的位图数据),但我确实可以了解 POST 操作的进度(例如 FileReference.upload()) .
我不认为这是可能的,但如果它是可能的(通过任何方式,我愿意改变我的设置来获得这个)。
不要使用 HTTP 服务。使用 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 对象并使用上面的代码。
这对于 HTTPService 是不可能的。它唯一的事件是result
, fault
, and invoke
(除了和 的不相关的继承事件activate
)deactivate
。
要获取上传过程的进度信息,服务器必须提供信息,这将需要在操作期间服务器和客户端之间的通信方式,而常规 HTTP POST 操作不具备这种方式。
一种选择可能是在服务器上创建一个对象,该对象将在服务器开始从您的客户端接收 POST 数据时被实例化。然后它将跟踪进度并将该数据公开给服务器端应用程序的其余部分。然后,您的客户端可以启动一个轮询系统,该系统将请求该特定变量的值。
不过,这似乎是一种牵强的选择……