Flex 打开并浏览本地文件

项目需求:点击地图上某按钮,弹出相应CAD图以及jpg图片

功能设计:Flex中有FileReference的类可以对文件操作,实现上传、下载的功能,但是没有办法打开本地文件。

      只有在AIR桌面开发中有类似功能,在WEB端没有此api。

      研究后利用Flex调用JS成功实现功能。

实现原理:因资源布置在服务器上,所以采用点击时,调用后台(C#编写)将相应的dwg以及jpg下载到本地。

      再用JS打开轻量级dwg浏览工具”DWGView.exe“(CAD迷你看图)  

             以及windows自带的”windows图片和传真查看器“分别查看dwg以及jpg图。

运行环境:windows7+IE8+Flex4.0

源代码:

  调用JS方法(Flex端触发事件):

            1、dwg

    private function callExe():void
            {

      //调用callExe脚本,用”DWGView.exe“工具(缺省即为利用系统默认打开方式),打开D:下,名为1.dwg的数据
                ExternalInterface.call("callExe","DWGView.exe","D:1.dwg");
            }

    2、jpg

    ExternalInterface.call("callExe","D:"+fileName+".jpg");

  JS方法(写到项目”index.template.html“中):

        <script language="JavaScript" type="text/javascript">
                function callExe(shellp,str)
                {
                    try
                    {
                        var objShell=   new ActiveXObject("wscript.shell");
                        objShell.Run(shellp+" "+str);
                        objShell   =   null;
                    }  
                    catch(e)
                    {
                        alert('找不到文件"'+shellp+'"(或它的组件之一)。请确定路径和文件名是否正确,而且所需的库文件均可用。');
                    }
                }
     </script>

备注:操作时可能会遇到以下问题

   1、在下载dwg数据时,因为iis默认没有支持此类型。所以在iis的”MIME类型“中需要添加:文件扩展名”.dwg“,MIME类型:"application/x-autocad"

   2、调用JS失败时,需还将网站设置成可信网站,并启动”对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本“

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值