将图像保存为客户端文件?

时间:2011-02-01 12:03:02

标签: flash actionscript-3

我对flash和as3缺乏经验,我已经完成了编写程序的任务,该程序从提供的URL下载图像,并将它们保存到用户计算机上的指定位置。

这个想法是能够下载多个图像(用户选择它们)并将它们全部下载到一个目录(用户首先选择),这样他就不必一个一个地下载它们。此外,将它们放在存档中并作为一个文件下载不是一种选择。

我找到的唯一解决方案是使用FileReference.save(),这对我不起作用,因为它会打开一个保存对话框。

如果在闪存中无法做到这一点,请在不诉诸安装自定义插件的情况下提出另一种方法。

谢谢。

1 个答案:

答案 0 :(得分:3)

您将遇到的最大问题是Flash播放器沙盒安全性。如果您的SWF已经在网络上,则无法将本地计算机上的文件请求与网络上的文件请求混合在一起。这样做的原因是为了防止恶意SWF将文件从您的计算机发送到互联网。我花了一段时间才完全理解安全限制,但这都是here, in the Adobe AS3 help docs

在该页面的底部,您会看到安全沙箱类型列表,如果您正在创建一个网站(REMOTE),那么您无需在没有求助的情况下在Flash中实现您的设计到时髦的第三方浏览器插件:

  • Security.REMOTE
  • Security.LOCAL_WITH_FILE
  • Security.LOCAL_WITH_NETWORK
  • Security.LOCAL_TRUSTED←可以做你需要的。
  • Security.APPLICATION←也可以做你需要的。

LOCAL_*沙箱都处理您计算机上的SWF,但是要让他们访问您计算机上的其他文件然后将其发送到网络,用户需要手动“信任”SWF。假设您正在为更广泛的公众创建应用程序,这可能不是一个可行的选择。

你最好的选择是使用AIR。如APPLICATION中所述,您可以混合使用本地和网络资源。但是,在将用户安装为AIR桌面应用程序之前,您的用户将需要拥有其计算机的管理员权限并且完全信任您。

祝你好运! EP。