我在使用AS3脚本通过PHP将数据上传到服务器时出现问题,然后从PHP上传脚本返回一些值。我正在使用FileReference.upload()函数,并且文件正在成功上传,但我附加到DataEvent.UPLOAD_COMPLETE_DATA事件的eventListener没有触发。当文件上传完成后,我可以在PHP端做些事情来手动触发此事件吗?
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);
}
答案 0 :(得分:1)
所以这是一个长期存在的错误,Adobe声称他们已经修复了,但至少在Flex 3中,很多人声称他们可以重现它,即使在Adobe说他们已经修复它之后。这真的包括你的。
https://bugs.adobe.com/jira/browse/FP-1419
我会采用一种直接监控进度的工作,当所有这些工作都是手动上传时,或者只是在那里进行工作。您可以尝试阅读Jira中的评论。