2011-07-20 104 views
1

我在使用AS3脚本将数据上传到服务器时遇到了一些麻烦,然后从PHP上传脚本中返回一些值。我正在使用FileReference.upload()函数,并且文件正在成功上载,但附加到DataEvent.UPLOAD_COMPLETE_DATA事件的eventListener未触发。当文件完成上传时,有什么事情可以在PHP的结尾处手动触发此事件?DataEvent.UPLOAD_COMPLETE_DATA无法解决问题

AS3:

private function onFileLoaded(event:Event):void { 
      //var _fileReference:FileReference = event.target as FileReference; 
      //var data:ByteArray = fileReference["data"]; 
      //var filename:String = fileReference.name; 
      var urlRequest:URLRequest = new URLRequest("http://www.arttoframes.com/canvasSystems/uploadImage.php"); 
       urlRequest.method = URLRequestMethod.POST;     
      fileReference.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, onUploadComplete); 
      fileReference.upload(urlRequest); 
     } 
     private function onFileLoadError(event:Event):void { 
      fileReference.removeEventListener(Event.COMPLETE, onFileLoaded); 
      fileReference.removeEventListener(IOErrorEvent.IO_ERROR, onFileLoadError); 
     } 
    private function onUploadComplete(event:Event):void { 
      trace("ok"); 
      fileReference.removeEventListener(DataEvent.UPLOAD_COMPLETE_DATA,onUploadComplete); 
      var thumbReferenceName = fileReference.name.substr(0,fileReference.name.indexOf("."))+"_thumb"+fileReference.name.substr(fileReference.name.indexOf("."),4)+"?nocache=" + new Date().getTime() 
      var urlRequest:URLRequest = new URLRequest("http://www.arttoframes.com/canvasSystems/uploads/Thumbnails/"+thumbReferenceName); 
      var urlLoader:Loader = new Loader(); 
       urlLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onDownloadComplete); 
       //urlLoader.load(urlRequest); 
     } 

回答

1

所以这是的Adobe声称他们已经修复了一个长期存在的bug,但至少在Flex 3对的很多人声称他们可以重现Adobe表示,即使他们已经修复它。这真的包括你的。

https://bugs.adobe.com/jira/browse/FP-1419

我会采用一种直接的工作围绕监测进展情况,当所有的已手动上传发出事件或者只是做你的工作出现。有几种解决方法可以尝试阅读Jira中的评论。

+1

哇,这是阻止我的项目死在它的轨道。 DataEvent.UPLOAD_COMPLETE_DATA是我从上传脚本获取URLvar数据的唯一方法。监控进度将不起作用,因为它不会返回来自PHP的数据。任何人都有运气解决这个问题? –

+0

Jira票据中还包含其他解决方法,这些解决方案讨论可以如何获取URL数据,但是您可能必须重组您的工作方式。可能将该数据保存到会话并进行第二次调用以检索它。不是我们想如何解决这个问题,但是你可以解决这个问题。 – chubbsondubs