2010-06-29 57 views
1

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

我试图使用SharedObject类,但它似乎没有工作。我怀疑由于安全问题(不使用Adobe AIR),我想要做的事不可行,但我想检查一下。

有没有人请知道,如果有无论如何存储FileReference对象,请在SWF重新启动时加载它?

非常感谢你,

鲁迪

+0

恐怕这是不可能的。用户操作始终是文件系统操作所必需的。 – 2010-06-29 01:44:34

回答

2

我不认为你可以一个一个FileReference存储到一个共享对象。或者至少,我不认为你可以得到文件数据,所以在实践中没有太大的区别。

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

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

下次您的应用程序加载后,您应该能够从SO获取文件数据(假定数据已成功保存且SO未被删除)。

+0

谢谢你的回答。 问题是用户选择了一堆存储在队列中的文件。这些文件稍后将被上传。我真的不想阅读它们,只是保留一个FileReference,以便在用户回来时可以稍后上传。 但我想这是行不通的。 – Rudy 2010-06-29 16:28:00

+0

是的,如果filereference可以被序列化和反序列化,那将是一个安全漏洞。 ByteArray是正确的路径...(虽然我觉得你的痛苦 - 加载2 GB的视频文件真的不可行)... – ansiart 2010-06-30 00:38:30