`
wangleifire
  • 浏览: 508939 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

flex读取本地文件的解决方案

    博客分类:
  • FLEX
阅读更多

鉴于adobe并没有提供FileReference对浏览的文件的完整路径的接口。
只能采用JS和fileinput控件来获取本地路径了。
mxml代码
<!--ReadLocalFile.mxml-->
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
<mx:Script>
     <![CDATA[
      
       private

function init():void
       {
           ExternalInterface.addCallback("OnFileChange" ,frSelectHandler);//注册JS回调
           btnBrowser.addEventListener(MouseEvent.CLICK,mouseClickHandler);
       }
      
       private function mouseClickHandler(event:MouseEvent):void
       {
           ExternalInterface.call("Browser" );//调用JS中Browser函数
       }
      
       private function frSelectHandler(path:String):void
       {
           imgTest.source = path;
       }
     ]]>
</mx:Script>
     <mx:Button id="btnBrowser" x="10" y="10" label="Button" />
     <mx:Image id="imgTest"   x="10" y="50"/>
</mx:Application>

html端代码
<!-- ReadLocalFile.html -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="history/history.css" />
<title></title>
<script src="AC_OETags.js" language="javascript"></script>
<script src="history/history.js" language="javascript"></script>
<style>
body { margin: 0px; overflow:hidden }
</style>
<script language="JavaScript" type="text/javascript">
var requiredMajorVersion = 9;
var requiredMinorVersion = 0;
var requiredRevision = 28;
//关键代码
function Browser()
{
document.getElementById("fileInput").click();
}
function OnFileChange()
{
thisMovie("ReadLocalFile").OnFileChange(document.getElementById("fileInput").value);
}
function thisMovie(movieName) {
         if (navigator.appName.indexOf("Microsoft") != -1) {
             return window[movieName];
         } else {
             return document[movieName];
         }
     }

</script>
</head>
<body scroll="no">
<input type="file" id="fileInput" style="display:none" onchange="OnFileChange()" /><!--fileInput控件-->
<script language="JavaScript" type="text/javascript">
var hasProductInstall = DetectFlashVer(6, 0, 65);
var hasRequestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
if ( hasProductInstall && !hasRequestedVersion ) {
var MMPlayerType = (isIE == true) ? "ActiveX" : "PlugIn";
var MMredirectURL = window.location;
     document.title = document.title.slice(0, 47) + " - Flash Player Installation";
     var MMdoctitle = document.title;
AC_FL_RunContent(
   "src", "playerProductInstall",
   "FlashVars", "MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"",
   "width", "100%",
   "height", "100%",
   "align", "middle",
   "id", "ReadLocalFile",
   "quality", "high",
   "bgcolor", "#869ca7",
   "name", "ReadLocalFile",
   "allowScriptAccess","sameDomain",
   "type", "application/x-shockwave-flash",
   "pluginspage", "http://www.adobe.com/go/getflashplayer "
);
} else if (hasRequestedVersion) {
AC_FL_RunContent(
   "src", "ReadLocalFile",
   "width", "100%",
   "height", "100%",
   "align", "middle",
   "id", "ReadLocalFile",
   "quality", "high",
   "bgcolor", "#869ca7",
   "name", "ReadLocalFile",
   "allowScriptAccess","sameDomain",
   "type", "application/x-shockwave-flash",
   "pluginspage", "http://www.adobe.com/go/getflashplayer "
);
   } else {   // flash is too old or we can't detect the plugin
     var alternateContent = 'Alternate HTML content should be placed here. '
   + 'This content requires the Adobe Flash Player. '
     + '<a href=http://www.adobe.com/go/getflash/>Get Flash</a>';
     document.write(alternateContent);   // insert non-flash content
   }
</script>
<noscript>
   <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
   id="ReadLocalFile" width="100%" height="100%"
   codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab ">
   <param name="movie" value="ReadLocalFile.swf" />
   <param name="quality" value="high" />
   <param name="bgcolor" value="#869ca7" />
   <param name="allowScriptAccess" value="sameDomain" />
   <embed src="ReadLocalFile.swf" quality="high" bgcolor="#869ca7"
     width="100%" height="100%" name="ReadLocalFile" align="middle"
     play="true"
     loop="false"
     quality="high"
     allowScriptAccess="sameDomain"
     type="application/x-shockwave-flash"
     pluginspage="http://www.adobe.com/go/getflashplayer ">
   </embed>
</object>
</noscript>
</body>
</html>
分享到:
评论
1 楼 hotboy10001000 2009-04-10  
这个方法在IE8下已经不行了

相关推荐

    flex读取本地的shapefile文件

    另外,ShpReader库可能不支持所有Shapefile的特性,如投影信息等,对于更复杂的需求,可能需要寻找其他解决方案,如使用更强大的GIS库或服务。 总之,通过使用ShpReader库,Flex开发者可以方便地在应用程序中集成...

    flex air 本地文件管理器

    这使得Flex Air应用能够像原生桌面应用一样访问和管理本地文件,如创建、读取、修改和删除文件。 接着,"文件树"这一概念在文件管理中扮演着重要角色。在Flex Air中,开发者可以利用Tree控件来构建文件系统树视图,...

    flex+java文件上传完整实例

    本示例“flex+java文件上传完整实例”提供了一个完善的解决方案,它结合了Adobe Flex前端技术和Java后端技术,实现了用户友好的文件上传功能。Flex是一种开源的RIA(富互联网应用)开发框架,而Java则提供了强大的...

    Flex 上传文件控件 (带java服务端)

    综上所述,这个项目提供了一套完整的解决方案,涵盖了从Flex前端的文件选择、大小限制、进度显示,到Java后端的文件接收、大小检查和存储等全部流程,是学习和实践Flex与Java集成开发文件上传功能的一个良好示例。

    Flex和Servlet结合上传文件

    在文件上传场景中,Flex可以设计一个包含文件选择按钮和进度条的界面,用户可以选择本地文件并触发上传操作。 接下来,当用户点击上传按钮后,Flex会通过HTTP POST请求将文件数据发送到服务器端的Servlet。在...

    Flex读取txt文件中的内容报错原因分析及解决

    需要注意的是,尽管代码示例提供了文件路径创建的解决方案,但在实际应用中,开发者可能还需要考虑以下因素以确保程序的健壮性: - 检查文件是否存在:在尝试读取文件之前,先检查文件是否存在,以避免“文件不存在...

    Flex4 文件上传

    1. **用户界面**:在Flex中,通常会使用一个组件,如FileUpload控件,允许用户选择本地文件。用户点击按钮,系统弹出文件选择对话框,用户选取文件后,FileReference对象会被初始化。 2. **FileReference类**:这是...

    flex文件上传下载组件

    综上所述,Flex文件上传下载组件结合了Flex的富用户体验和Java Servlet的强大处理能力,提供了一个高效、安全的文件管理解决方案。通过合理的前端设计和后端逻辑,开发者可以构建出满足多样化需求的文件上传下载系统...

    Flex+WebService附件上传下载

    `FileReference`是ActionScript 3.0中的一个核心类,允许用户选择本地文件,并执行读取、写入和上传操作。在文件上传过程中,我们首先需要在用户界面上添加一个按钮或组件,让用户选择文件,然后调用`FileReference....

    Flex3获得文件Hash值MD5值完整工程源码

    这个Flex3工程提供了一个完整的解决方案,让开发者可以直接使用,无需自己实现MD5计算。对于想要在Flex3项目中集成文件哈希检查功能的开发者来说,这是一个非常实用的资源。通过研究和理解源码,开发者可以加深对MD5...

    Flex文件上传【源码】

    Flex文件上传【源码】是基于Adobe Flex技术与Java Servlet技术实现的一种文件上传解决方案。Flex是一种用于构建富互联网应用程序(RIA)的开放源代码框架,它允许开发者创建具有交互性和动态性的用户界面,而Java ...

    Flex学习—关于Shareobject对象(本地共享对象)

    ShareObject是Flex提供的一种轻量级的数据存储解决方案,它类似于Web浏览器中的Cookie,但具有更大的存储容量和更高的访问速度。ShareObject可以在用户的本地缓存中存储数据,即使应用程序关闭,这些数据也能被保留...

    flex 客户端缓存

    本文将深入探讨Flex3中的客户端缓存策略,以及如何利用Module解决方案来有效地管理SWF文件缓存。 首先,让我们了解什么是Flex。Flex是由Adobe开发的一种开源框架,用于构建富互联网应用程序(RIA)。它主要基于...

    Flex4.6+java+servlet上传图片例子+图片上传预览

    为了实现图片上传,Flex前端可能会使用FileReference类,它提供了读取本地文件并上传到服务器的能力。FileReference对象可以监听“uploadCompleteData”事件,当文件上传成功时触发。同时,通过Flash Player的...

    flex文件上传

    Flex文件上传技术是一种基于Adobe Flex框架的客户端文件上传解决方案。Flex是使用ActionScript编程语言和MXML标记语言创建富互联网应用程序(RIA)的开源开发工具。在Flex中处理文件上传功能,可以为用户提供直观、...

    基于Flex开发的多文件上传控件,及在.Net平台下使用该控件的Demo.zip

    FileReference允许用户选择本地文件并执行读取、写入或上传操作。我们可以通过监听FileReference的事件,如select事件(用户选择文件后触发)、dataEvent(数据读取完成时触发)和uploadCompleteData(上传完成时...

    Flex不能Debug调试问题

    5. 联系技术支持:如果以上方法都无法解决问题,那么可能需要联系Adobe的技术支持或者寻求专业开发者的帮助,他们可能能提供更深入的诊断和解决方案。 总的来说,解决Flex不能Debug调试问题需要对网络环境、软件...

    flex zip压缩算法

    6. **文件操作**:在AS3.0中,`flash.filesystem`和`flash.net`类库提供了读写本地文件和网络文件的能力。开发者可以使用`FileReference`类来上传和下载文件,使用`FileStream`类来读取和写入二进制数据。 7. **...

    Flex文件读取报错示例

    以下是一些Flex文件读取中可能遇到的知识点和相应的解决方案: 1. 文件路径问题: Flex中访问本地文件系统,需要使用File类来操作文件。在示例中,尝试创建一个File实例指向应用目录下的test.txt文件。正确的代码...

    flex 图片切换 适合做首页的logo,里面的图片可以通过修改xml来达到效果

    总的来说,这个Flex3项目提供了一种动态展示Logo的解决方案,利用了Flex的组件、XML数据绑定和动画效果,使得首页Logo的更新和定制变得简单且灵活。对于前端开发者来说,理解和掌握这种技术可以帮助他们快速构建具有...

Global site tag (gtag.js) - Google Analytics