AS3实现文件的上传与下载

文件的上传与下载主要依靠FileReference和FileReferenceList这两个类来实现,包结构为falsh.net.FileRefenence和flash.net.FileReferenceList.

文件的下载

FileReference对象的downLoad()方法

downLoad(request:URLRequest,defaultFileName:String)

  • request的url属性应包含为要下载到本地的文件的URL;

  • defaultFileName为文件下载到本地后的文件名。最好手动指定。文件名不能包含以下字符:/\:*'”<>|%
  • 此方法打开一个操作系统对话框,用户选择了位置并确认现在后开始下载。
  • 为了在downLoad()方法执行后跟踪下载操作的状态,我们要实现对open、progress和complete事件进行侦听。

我们还可以侦听fileReference对象的cancel,select事件进行侦听,以确定用户是点击了确定还是取消按钮。

监听下载进度

var  fileRef:FileReference=new FileReference();
fileRef.addEventListener(ProgressEvent.PROGRESS,onProgress);
fileRef.downLoad(url,fileName);
……
private function onProgress(event:ProgressEvent):void{

    var loaded:uint=event.bytesLoaded;
    var total:uint=event.bytesTotal;
        ……
}

 

 

文件的上传

FileReference或FileReferenceList的browse()与upLoad()方法。

 

FileReference或FileReferenceList的browse()方法

browse(typeFilter:Array):Boolean

 

  • typeFilter为文件滤镜,即指定哪几种类型的文件可以在打开的浏览对话框中显示。
  • 此方法打开一个对话框用语浏览本地磁盘文件。FileReference只能单选,FileReferenceList能实现多选。
  • 当调用此方法并成功选择了文件时,会填充FileReference对象的属性以在upLoad()方法中使用。
  • 此方法可能会抛出异常,所以最好在 try-catch语句中进行捕获处理。
var  fileRef:FileReference=new FileReference();//实例化对象
      fileRef.browse([new FileFilter("psd文件","*.psd")]);//弹出浏览窗口,只能显示psd类型的文件

在设置过滤器后,可能会发生ArguementError异常,可能是由于FileFilter对象的格式错误造成的。

FileReference的upLoad()方法

upload(request:URLRequest,upLoadDataFileName:String=”fileData”,testUpload=false)

request 此URLRequest对象的url属性应包含特定服务器脚本的URL,该服务器脚本呗配置为通过HTTP POST调用处理上传。

你可能感兴趣的:(下载,文件,上传,as3,as3)