现在的位置: 首页 > 综合 > 正文

Accessing the Local File System with Flex

2012年09月22日 ⁄ 综合 ⁄ 共 1655字 ⁄ 字号 评论关闭
You can NOT access the local file system with Flex due to the Flash security sandbox with the exception of uploading files which give you tightly regulated access. I told my client this, but they really wanted to use Flex and told me to find a way to do it. I considered having clients upload a file and then download it back to Flex, but some users are on slow connections the client did not think that it was a viable alternative. They wanted cross platform/browser support so a Java Applet seemed the way to go. Thanks to the Flex AJAX bridge on Adobe Labs I knew JavaScript could connect to Flex and I had previously worked with Java Applets and JavaScript, so I knew I had a means for the two to communicate. The application is straight forward. I created a Flex application with a text box and a button. I created a signed Java Applet that lets you browse and read files. I used the AJAX bridge to setup an event listener form the Flex button to a JavaScript function that called the file browse in the Java Applet. Once the applet reads the file it calls a JavaScript function that then sends the data back to Flex through the bridge. Of course the devil is in the details or in the various security issues within all three technologies in this case.

See it in action at: http://www.kellyjo.com/code/flexjava/FlexJava.html
* It only loads text files, binary files will cause an error. I know it works in IE, but Firefox has issues with it and I haven't tested it with other browsers.

Java Code: http://www.kellyjo.com/code/flexjava/localfile.java
Flex Code: http://www.kellyjo.com/code/flexjava/FlexJava.mxml
Flex Ajax Bridge: http://labs.adobe.com/wiki/index.php/Flex-Ajax_Bridge

In the end I convinced the client that Flex really wasn’t the technology to use since the application also required us to digitally sign, save, and load documents on the client machine. I don’t know that I'd recommend using this technique in a production site, but it's conceptually interesting.

 

 

抱歉!评论已关闭.