有没有办法让 Flash 文件浏览器允许用户浏览他们的本地计算机、查看 jpg 和其他图像的缩略图并上传选定的文件?这就像 Facebook 使用的 ActiveX/Java 小程序。有什么想法或例子吗?谢谢!
4 回答
您可以使用 FileReference 对象,它允许用户浏览他的文件系统(它会弹出本机 OS UI 控件,所以如果您想要制作文件浏览器本身,恐怕这是不可能的,至少在普通 swf )。
在 flash player 10 中,您可以直接使用本地文件;将文件加载到 swf 中,修改并保存回来(它需要用户交互,即鼠标单击,然后再次弹出“保存文件”本机对话框;出于安全原因,您不能直接写入文件) . 对于以前的版本,您必须先将文件上传到服务器,然后再将其下载回来才能进行修改。
Adobe AIR 应该能够做到这一点。通过将 Flash 放入 AIR“容器”中,它应该拥有比普通 Flash 应用程序更多的权限。
Adobe AIR
不确定您是否可以从浏览器中的 Flash 执行此操作。
Facebook 的东西是 Java。所以Java可以做到。
Silverlight 或许可以做到。没有把握。
要回答您的问题,遗憾的是,您无法专门在浏览器嵌入的 SWF 中专门复制 Facebook 图像上传控件的功能,不,没有允许从 Web 浏览器中直接访问文件系统的 Actionscript API。
两张海报都是正确的,但在不同的点上——AIR 可以做到(在某些限制下,使用flash.filesystem.File
),并且您可以浏览到(使用本机操作系统文件选择对话框,使用flash.net.FileReference
),选择一个或多个文件并将其上传到Web 服务器——但是在 Flash 播放器插件范围内工作的 Web 浏览器中,不可能枚举本地目录的内容并以这种方式显示缩略图图像。不是单独使用 Flash。(或者甚至是 Silverlight,就此而言。)
对不起,我希望我有一个更好的答案给你。如果应用程序需要基于 Web,Java 看起来仍然是最合理的选择。不过,您可能还会研究JavaFX ——我自己还没有使用过它,但它可能会提供其他两个没有的东西。祝你好运。