2011-07-20 101 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