as3 图片上传程序

2011-06-09 17:46:55 by 【6yang】, 310 visits, 收藏 | 返回

这是一个简单的图片上传程序,可以将本地图片上传到网上,之后还会再写一个加载显示已经上传的图片的功能

注:

up_name:为动态文本框,用来显示选中的图片的文件名

liulan:为"浏览"按钮,点击它之后会弹出浏览框,选择要上传的图片

shangchuan:为"上传"按钮,点击它之后会将选好的图片上传

loading:为动态文本框,用来显示上传进度百分比和上传成功信息等

将这几个元件全部放到一个mc中,并将下面的类绑定到这个mc

package {
 import flash.display.*;
 import flash.text.TextField;
 import flash.events.*;
 import flash.system.*;
 import flash.net.URLRequest;

 

//上传类
 import flash.net.FileReference;
 //文件类型过滤类
 import flash.net.FileFilter;
 public class shangchuanlan extends Sprite {
  //创建上传类
  public var fileRef:FileReference=new FileReference();
  public function shangchuanlan() {
   liulan.buttonMode=true;
   shangchuan.buttonMode=true;
   //点击浏览按钮时的事件
   liulan.addEventListener(MouseEvent.CLICK,click_liulan);
   //点击上传按钮时的事件
   shangchuan.addEventListener(MouseEvent.CLICK,up_load);
  }
  //============================================= 一条华丽的分割线 ==============================================================//
  private function click_liulan(e:MouseEvent):void {
   //设置文件类型
   var imageTypes:FileFilter=new FileFilter("Images(*.jpg, *.jpeg, *.gif)","*.jpg;, *.jpeg;, *.gif;");
   //将所需文件类型放到一个数组中,因为后面的browse中的参数是数组
   var allTypes:Array=new Array(imageTypes);
   //弹出框,文件类型为allTypes数组中的
   fileRef.browse(allTypes);
   //当点击弹出框中的"打开"后,执行up_select函数
   fileRef.addEventListener(Event.SELECT,up_select);
   //上传或下载完成后事件,执行up_complete
   fileRef.addEventListener(Event.COMPLETE,up_complete);
   //成功上传并从服务器接收数据之后
   fileRef.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,up_complete_data);
   //上传或下载开始时执行
   fileRef.addEventListener(Event.OPEN,up_open);
   //上传或下载期间执行
   fileRef.addEventListener(ProgressEvent.PROGRESS,up_progress);
  }
  //============================================= 一条华丽的分割线 ==============================================================//
  //以下是各个事件时被执行的函数
  private function up_select(e:Event):void {
   //将选中的文件的文件名(fileRef的name属性)显示在文本框中
   up_name.text=fileRef.name;
  }
  private function up_load(e:MouseEvent):void {
   //获取文件的类型
   var fileType:String=fileRef.type;
   //获取文件的大小
   var fileSize:Number=fileRef.size;
   trace("类型:"+fileType,"大小:"+fileSize);
   //连接接口网页
   var loadurl:String="http://www.xxx.com/xxx.asp";
   var uploadURL:URLRequest = new URLRequest(loadurl);
   //用upload事件将文件发送给网页,语法upload(网址,文件名)
   fileRef.upload(uploadURL,fileRef.name);
   trace(uploadURL.url);
  }
  private function up_complete(e:Event):void {
   //显示指令发送者的信息
   trace("completeHandler: " + e);
   loading.text="上传成功!"
  }
  private function up_complete_data(e:Event):void {
   //显示指令发送者的信息,即接收到的网页返回信息,其中有上传后文件的路径
   trace("uploadCompleteDataHandler:"+e);
  }

分享到:
share

    图片原图

    loading

    loading