我为我正在处理的应用创建了一个图片上传器。我首先使用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目录,但随后出现上述错误。
是否还有其他人遇到类似问题或指出我正确的方向来解决这个问题?
答案 0 :(得分:0)
这是Flash产生的错误。最常见的原因是:
您可能在Flash中遇到404错误。
如果在加载浏览器时关闭浏览器,则会发生此错误。
默认情况下,调用的SWF文件和加载的URL必须位于同一个域中。例如,www.adobe.com上的SWF文件只能从www.adobe.com上的源加载数据。要从其他域加载数据,请将URL策略文件放在托管数据的服务器上。
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." );
}
希望有所帮助