as3到.net,没有收到Event.COMPLETE回调

时间:2010-02-12 18:31:19

标签: flex flash actionscript-3

我为我正在处理的应用创建了一个图片上传器。我首先使用php作为服务器端脚本,一切正常。之后我发现我必须使用.net,所以我创建了新的服务器端脚本。我遇到的问题是我的event.COMPLETE侦听器永远不会被触发。我可以使用DATAEVENT侦听器接收数据,但之后它会在此错误处停止:

Error #2044: Unhandled IOErrorEvent:. text=Error #2036: Load Never Completed.

以下是我发送文件的方式。

var fileRefReq:URLRequest = new URLRequest(FILE_UPLOAD_TEMP);
                var fileReqVars:URLVariables = new URLVariables();
                fileReqVars.subdir = "Temp";
                fileRefReq.data = fileReqVars;
                fileRefReq.method = URLRequestMethod.POST;
                fileRef.upload(fileRefReq);

文件肯定会上传到第一个TEMP目录,但随后出现上述错误。

是否还有其他人遇到类似问题或指出我正确的方向来解决这个问题?

2 个答案:

答案 0 :(得分:0)

这是Flash产生的错误。最常见的原因是:

  1. 您可能在Flash中遇到404错误。

  2. 如果在加载浏览器时关闭浏览器,则会发生此错误。

  3. 默认情况下,调用的SWF文件和加载的URL必须位于同一个域中。例如,www.adobe.com上的SWF文件只能从www.adobe.com上的源加载数据。要从其他域加载数据,请将URL策略文件放在托管数据的服务器上。

  4. 3号很重要,因为Flash的常见用户问题是安全问题 - 因此只需要排除。很可能不是这里的原因。

    我会测试这3个原因并阅读URLRequest:http://livedocs.adobe.com/flex/3/langref/flash/net/URLRequest.html

    经过一些额外的考虑后,我认为这是暂时的,但这只是一个理论。像这样添加一个事件监听器:

    urlLoader.addEventListener("httpResponseStatus", function(event:HTTPStatusEvent):void
    

    看看实际发生了什么。

答案 1 :(得分:0)

您必须处理以下事件:

// add the event listener
urlLoader.addEventListener( IOErrorEvent.IO_ERROR, onErrorHandler );

// handle the error event like this:
private function onErrorHandler( e: IOErrorEvent ): void {
 trace( "An io error occurred." );
}

希望有所帮助