Firefox 4的Flex 4 FileReference问题

时间:2011-05-11 16:12:30

标签: flex file-upload upload flex4 filereference

我正在尝试使用Firefox 4中运行的Flex应用程序使用FileReference执行文件上传。但是,当我尝试调用upload()方法时,Filereference会抛出IOError并带有以下内容

Error #2038: File I/O Error. URL: http://localhost:8080/admin/upload

如果我没有为IOErrorEvent显式添加一个监听器,那么我会得到一个Flash播放器弹出窗口

SecurityError: Error #2000: No active security context.

请求甚至没有打到我的服务器(我可以通过在Java代码中放置断点并观察使用HTTPFox发出的HTTP请求来验证),所以在我看来这是一个客户端问题(对吗? )。我已经在google上搜索了一些问题并且建议包括在timeout / callLater中包装upload()调用,并尝试将sessionId附加到请求(因为Firefox为上传创建了一个新线程而不是附上适当的饼干)。这些方法都不适合我。

我没有遇到Internet Explorer的这个问题,只有Firefox。

之前有没有遇到过这个?有什么建议?谢谢你的帮助。

编辑:应该提及SWF和请求的URL位于同一台服务器上(localhost:8080)。

2 个答案:

答案 0 :(得分:0)

来自FileReference的文档:

  

对于在Flash Player中运行的内容或在应用程序安全沙箱之外的Adobe AIR中运行的内容,上载和下载操作只能访问其自己的域内以及URL策略文件指定的任何域中的文件。如果启动上载或下载的内容不是来自与文件服务器相同的域,请将策略文件放在文件服务器上。

此外 - 这是作为发布还是在调试器中运行?有时服务器访问的行为是完全不同的。

答案 1 :(得分:-3)

相当正常的安全沙箱问题(不适用于Firefox,但适用于Flash Player)。

您只需要在网络服务器的根目录中添加crossdomain文件。