我正在尝试使用FileRef和php脚本上传文件。文件上传,它肯定会返回一个测试字符串(我可以通过Web调试器看到它)..但我无法在我的flex应用程序中获取该字符串。我正在使用DataEvent侦听器和COMPLETE侦听器。仍然没有结果。
我在这里做错了什么?
fileRef.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, onFileResponse);
fileRef.addEventListener(Event.COMPLETE, fileRef_complete);
private function fileRef_complete(evt:Event):void{
trace("COMPLETE");
trace(evt.target.data);
}
private function onFileResponse(event:DataEvent)
{
message.text = "HELLO";
trace("UPLOAD COMPLETE = " + event.data);
}
答案 0 :(得分:0)
您的问题是事件未被触发,或者事件被触发时data
字段为空?
如果是前者,服务器是否返回HTTP代码200?这是我在FileReference
文档中看到的唯一直接规范。
如果是后者,我认为不希望在upload()调用中填充数据字段:
数据:ByteArray [只读]
表示的ByteArray对象 来自加载文件的数据 成功调用load()方法。
编辑:
FileReference
在呼叫完成之前是否超出范围 - 这将取消Flash端的事务(尽管呼叫可能仍在网络端完成)。
您是如何致电FileReference.upload()
的?如果你的网络调试器显示成功,我认为这不是问题,但它可能是有意义的。
答案 1 :(得分:0)
这就是我调用文件上传的方式:
fileRef.upload(urlReq, "Filedata", false);
它不应该超出范围,它在同一个mxml文档中,但也许我错过了一些东西。