Flex中利用FileReference类的browse()和upload()函数选择并上传单个文件到Web服务器的例子
By Minidxer | September 23, 2008
在前面的Flex中利用FileReference类下载文件的例子中,我们演示了Flex中如何利用Flash播放器的FileReference类(flash.net.FileReference),从服务器端下载文件到本地。接下来的例子演示了Flex中利用FileReference类的browse()函数,选择并上传单个文件到Web服务器。由于受服务器的限制,无法展示Demo(需要cf支持)。
下面是完整代码:
Download: main.mxml
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
- layout="vertical"
- verticalAlign="middle"
- backgroundColor="white"
- creationComplete="init();">
- <mx:Script>
- <![CDATA[
- private var fileRef:FileReference;
- private const FILE_UPLOAD_URL:String = "http://www.YOUR-WEBSITE-HERE.com/fileref/uploader.cfm";
- private function init():void {
- fileRef = new FileReference();
- fileRef.addEventListener(Event.SELECT, fileRef_select);
- fileRef.addEventListener(ProgressEvent.PROGRESS, fileRef_progress);
- fileRef.addEventListener(Event.COMPLETE, fileRef_complete);
- }
- private function browseAndUpload():void {
- fileRef.browse();
- message.text = "";
- }
- private function fileRef_select(evt:Event):void {
- try {
- message.text = "size (bytes): " + numberFormatter.format(fileRef.size);
- fileRef.upload(new URLRequest(FILE_UPLOAD_URL));
- } catch (err:Error) {
- message.text = "ERROR: zero-byte file";
- }
- }
- private function fileRef_progress(evt:ProgressEvent):void {
- progressBar.visible = true;
- }
- private function fileRef_complete(evt:Event):void {
- message.text += " (complete)";
- progressBar.visible = false;
- }
- ]]>
- </mx:Script>
- <mx:NumberFormatter id="numberFormatter" />
- <mx:Button label="Upload file"
- click="browseAndUpload();" />
- <mx:Label id="message" />
- <mx:ProgressBar id="progressBar"
- indeterminate="true"
- visible="false" />
- </mx:Application>
代码:Peter deHaan 翻译/整理/编译:minidxer
Topics:
Other |
No Comments » |
Tags: browse(), FileReference, upload()