FLEX-RIA 结合JS弹出文件选择框返回完整文件路径

FLEX中FILEREFERENCE虽然可以弹出文件选择框,但出于安全原因无法返回文件的完整路径,就必须使用ExternalInterface与JS交互来实现。网上找到这样一种实现方法:

假设FLEX MAIN文件为MAIN.MXML,在里面SCRIPT中添加如下方法:


 

 

接着在MAIN中加入一个BUTTON,将BUTTON的οnclick="loadfile()"

 

在MAIN.HTML中 </body>结束前添加如下代码:

 

运行之后我们发现已经可以实现通过文件选择框返回文件完整路径了,但是这样做有如下缺陷:

1、文件选择框弹出位置很别扭,是在左上角。

2、在这个文件选择框的基础上加入文件类型过滤器很麻烦。

3、使用IE8以下的浏览器返回结果倒没什么问题,但是如果你使用了IE8或OPREA10那恭喜你,返回的结果就是X:/FAKEPATH/XX.XXX,IE8很匪夷所思地为了所谓的安全考虑屏蔽了路径,将路径换成了"FAKEPATH"。

 

这些问题能解决吗?当然是可以的,而且只需要对JS部分做少许改动,上面的MAIN.HTML部分换成如下代码:

这段代码与上一段的区别就在于放弃使用<input type="File" id="myFile" οnchange="giveValueToFlex(myFile.value)" style="visibility:hidden" mce_style="visibility:hidden">组件,而是通过ACTIVEXOBJECT调用MSComDlg.CommonDialog来实现,这样不仅可以更容易地实现文件过滤,而且弹出位置默认就是在屏幕中间的,在IE8中也可以返回正确的完整文件路径了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值