【问题标题】:Flex 4 FileReference Issues With FirefoxFirefox 的 Flex 4 文件引用问题
【发布时间】:2011-05-11 16:12:30
【问题描述】:

我正在尝试使用在 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 上搜索了一些问题,建议包括将 upload() 调用包装在 timeout/callLater 中,并尝试将 sessionId 附加到请求中(因为 Firefox 为上传创建了一个新线程并且没有附上正确的cookies)。这两种方法都不适合我。

Internet Explorer 没有这个问题,只有 Firefox。

有没有人遇到过这种情况?有什么建议么?感谢您的帮助。

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

【问题讨论】:

  • 您是否在两个浏览器中使用相同的 Flash 播放器版本?哪个版本?
  • 也分享一些你如何发送请求的代码,链接可能对你有帮助actionscripterrors.com/?p=409
  • 我面临着类似的问题。它有时会起作用,但以后不起作用...您找到任何解决方案了吗?

标签: apache-flex file-upload upload flex4 filereference


【解决方案1】:

来自FileReference 的文档:

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

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

【讨论】:

    【解决方案2】:

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

    您只需要在您的网络服务器的根目录上创建一个crossdomain 文件。

    【讨论】:

    • 甚至没有请求检查跨域。
    • SWF 和被请求的 URL 也在同一台服务器上(localhost:8080),因为它在 IE 中工作,我怀疑这是问题所在。
    • 明白了……很有趣。检查Firefox的错误数据库?我知道他们现在在 FF4 中对 flash 进行沙盒处理,也许它影响了这个功能..
    猜你喜欢
    • 1970-01-01
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多