关于跳过flex的sandbox实现访问本地资源的解决方案
来源:互联网 发布:mac 读取exe 编辑:程序博客网 时间:2024/04/30 15:55
需求:
开发flex的过程中遇到一个问题。flex的项目需要在客服端显示一个局域网类的一台服务器的文件目录结构,并且要能够点击访问。
预想:
flex在以前的版本里面没有file类,这个可以用java代码在后台进行处理,生成xml文件。前台的flex到相应目录下面读取数据即可。
困难:
flash被下载到客服端,有严格的安全限制。如果flash能控制你的系统,那这个计算机世界太恐怖了。
flash的sandbox的内容很多,可以到网上去搜搜看。
现在问题是在客服端,点击访问本地资源的链接时,弹出flash错误:不能访问本地资源,只有信任的程序才能访问本地资源
解决方案:
这个问题很怪,在IE上面是能点击开来的,IE会用本地的打开方式来打开相应的文件,略过不提。
还要flex没有把路都堵死了,flex可以调用javascript代码(flash.external.ExternalInterface)。
在firefox里面有个插件叫做Noscript,可以允许js代码访问本地资源。还有一个插件叫locallink可以使用file://
而在chrome里面现在暂时还没有这样的功能,但是chrome有个插件叫IE tab。
所以下面就是我的解决方案:
IE: window.open("file://*");
firefox:安装Noscript,配置信任“your site”,"file://",同样是window.open("file://*");
chrome:待续
相关代码如下:
flex URLUtil:
import flash.external.ExternalInterface;
public class URLUtil {
protected static const WINDOW_OPEN_FUNCTION : String = "window.open";
public static function openWindow(url : String, window : String = "_blank", features : String = "") : void {
var str:String= dealUrl(url);
ExternalInterface.call(WINDOW_OPEN_FUNCTION, "file:///"+str, window, features);
}
private static function dealUrl(str:String):String{
var string:String=str.substr(2);
var array:Array=string.split("//");
var url:String="//";
for(var i:int=0;i<array.length;i++){
if(array[i] == ""){
url=url+array[i];
}else{
url=url+array[i]+"/";}
}
return url;
}
}
还有一个js 方法不要忘记了
获得user.agent。不同的浏览器不同的处理方法。
- 关于跳过flex的sandbox实现访问本地资源的解决方案
- 关于引用本地资源图片 造成OOM的解决方案
- 本地数据访问的解决方案
- 本地数据访问的解决方案
- flex 只有仅限于文件系统的 SWF 文件和可信的本地 SWF 文件可以访问本地资源
- flex, swf 不能访问网络/本地资源
- flex swf访问资源的路径问题
- 浏览器不能访问本地资源的限制
- 关于flash/flex的程序跨域访问swf或者图片资源
- 关于在资源中的QML文件中访问本地Image文件(Qt的Bug)
- FLEX中如何访问服务器的本地绝对路径图片
- Flex或Flash的跨域访问的解决方案
- Flex或Flash的跨域访问的解决方案
- Flex项目如何设置可访问本地资源
- Flex或Flash的跨域访问解决方案
- flex 多 State(场景)下组件不能访问的解决方案
- Flex应用在内网内会访问很慢的解决方案
- 关于Lucene SandBox包的下载问题
- 多线程编程中非常有用的提示和技巧
- 如何成为顶级的程序员
- 在aspx里嵌入播放器.这个是播放flash视频的
- 文本与二进制内容的存取操作
- JS复制文本框内容
- 关于跳过flex的sandbox实现访问本地资源的解决方案
- 小曹谈技术之索引&词典结构
- ibatis对存储过程的调用
- C# 加密方式汇总(摘自http://www.cnblogs.com/heimirror/archive/2008/10/13/1309728.html)
- 耐心乐观精气神
- fscanf返回值
- Windows,Linux启动机制简介
- VC调试总结 zz http://www.cppblog.com/kevinlynx/archive/2008/04/24/47998.html 博客。
- Visual C++ C runtime库名称分析