【问题标题】:Storing a FileReference in a SharedObject将 FileReference 存储在 SharedObject 中
【发布时间】:2010-06-29 00:59:54
【问题描述】:

我想以某种方式存储一个 FileReference 对象,并在 SWF 再次加载时加载它。

我尝试使用 SharedObject 类,但它似乎不起作用。我怀疑由于安全问题(不使用 Adob​​e AIR)我想做的事情不可行,但我想检查一下。

请问有人知道是否有存储 FileReference 对象并在 SWF 重新启动时加载它吗?

非常感谢,

鲁迪

【问题讨论】:

  • 恐怕这是不可能的。文件系统操作始终需要用户操作。

标签: actionscript-3 cookies filereference shared-objects


【解决方案1】:

我认为您不能将 FileReference 存储到 SharedObject 中。或者至少,我认为您无法取回文件数据,因此在实践中并没有太大区别。

但是,从 Flash Player 10 开始,FileReference 对象中有一个 load 方法,可让您读取文件(通过 data 属性)。

数据以 ByteArray 的形式访问,可以将其序列化并存储到 SO 中以供以后检索。因此,您可以要求用户选择一个文件,读取其二进制数据并将其存储在 SO 中(默认情况下有 100 Kb 的限制,因此您很可能不得不向用户要求一些额外的空间)。

下次加载应用时,应该可以从 SO 中获取文件数据(前提是数据保存成功且 SO 未被删除)。

【讨论】:

  • 感谢您的回答。问题是用户选择了我存储在队列中的一堆文件。这些文件稍后将被上传。我真的不想阅读它们,只需保留一个 FileReference 以便稍后在用户回来时上传。但我想这是不可行的。
  • 是的,如果文件引用可以被序列化和反序列化,那将是一个安全漏洞。 ByteArray 是正确的方法......(虽然我觉得你很痛苦——加载 2 gb 视频文件真的不可行)......
猜你喜欢
  • 2010-12-01
  • 2016-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-14
  • 2013-07-10
  • 2011-05-11
相关资源
最近更新 更多