天天看点

flash 上传文件的actionscript 上传的各方法都有,仅供参考

import flash.net.FileReference;

import flash.net.URLRequest;

import flash.net.FileFilter;

import flash.display.Sprite;

import flash.events.*;

var fileRef = new FileReference();

var fileListener = new Object();

var totalBytes:Number = 0;

var uploadedBytes:Number = 0;

var acceptFileType:String = getFlashVars("acceptFileType");

var comJsFun:String=getFlashVars("ComJsFun");

//this.tbFilePath.text = comJsFun;

var uploadURL:URLRequest = new URLRequest();

var xmlRequest:URLRequest = new URLRequest();

var xmlLoader:URLLoader = new URLLoader();

//初始化系统

function init() {

   this.mcWaterStyle.visible = false;

   this.mcFilePlayer.visible = false;

   this.progressBar.visible = false;

   //设置按钮文字大小。

   var myFormat = new TextFormat();

   myFormat.size = 12;

   this.btBrowser.setStyle("textFormat", myFormat);

   this.btUpload.setStyle("textFormat",myFormat);

   this.tbFilePath.setStyle("textFormat", myFormat);

   this.mcWaterStyle.style0.setStyle("textFormat", myFormat);

   this.mcWaterStyle.style1.setStyle("textFormat", myFormat);

   this.mcWaterStyle.style2.setStyle("textFormat", myFormat);

   this.uploadInfo.setStyle("textFormat", myFormat);

   if(acceptFileType==""){

       /*从外部获取上传附加的文件类型。*/

       xmlRequest = new URLRequest("swffileupload.xml");

       //var loadVidateFile:URLRequest = new URLRequest("http://192.168.18.4/admin/article/x.aspx");

       xmlLoader.load(xmlRequest);

       xmlLoader.addEventListener(Event.COMPLETE,loaderHandler);

   }

}

init();

//按钮事件

this.btBrowser.addEventListener(MouseEvent.CLICK, browseHandler);

this.btUpload.addEventListener(MouseEvent.CLICK, UploadHandler);

fileRef.addEventListener(Event.SELECT,selectHandler);

fileRef.addEventListener(Event.CANCEL, cancelHandler);

fileRef.addEventListener(Event.OPEN, openHandler);

fileRef.addEventListener(Event.COMPLETE, completeHandler);

fileRef.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,uploadCompleteDataHandler)

fileRef.addEventListener(ProgressEvent.PROGRESS, progressHandler);

fileRef.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);

fileRef.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);

fileRef.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);

//浏览按钮事件

function browseHandler(event:MouseEvent):void {

   fileRef.browse(browseGetTypes());

function browseGetTypes():Array {

   var allTypes:Array = new Array(browseGetFileTypeFilter());

   return allTypes;

function browseGetFileTypeFilter():FileFilter {

   if(acceptFileType!=""){

       var arr = acceptFileType.split("|");

       var FileExtension = "";

       for(var i=0;i<arr.length;i++){

           if (arr[i] == "")

                continue;

           if(i==0)

               FileExtension = "*."+arr[i];

           else

               FileExtension = FileExtension+";*."+arr[i];

       }

       return new FileFilter("文件格式("+FileExtension+")", ""+FileExtension+"");

   }else{

       return new FileFilter("所有文件(*.*)","*.*");

   //return new FileFilter("所有文件(*.*)","*.*");

//加载上传配置事件

function loaderHandler(event:Event):void {

   var myXML:XML = new XML(xmlLoader.data);

   //myXML = XML();

   acceptFileType = myXML.child("Upload").ContontFileStyle;

   trace("--"+myXML.child("Upload").ContontFileStyle+"--");

   if(this.uploadInfo.text=="")

       this.uploadInfo.text = "允许的格式:"+myXML.child("Upload").ContontFileStyle;

//选择文件事件

function selectHandler(event:Event):void{

    this.uploadInfo.text = "";

    this.mcWaterStyle.visible = false;

    this.mcFilePlayer.visible = false;

    if (fileRef.size > 0){

        totalBytes = fileRef.size;

        this.tbFilePath.text =  fileRef.name+ "[" + this.getSizeType(totalBytes) + "]";

        var fileExtName = fileRef.name.substring(fileRef.name.lastIndexOf(".")+1);

        switch(fileExtName.toLowerCase()){

            case "jpg":

            case "png":

            case "jpeg":

            case "gif":

            case "bmp":

                this.mcWaterStyle.visible = true;

                break;

            case "flv":

                this.mcFilePlayer.visible = true;

                this.mcFilePlayer.mcWidth.text = 410;

                this.mcFilePlayer.mcHeight.text = 370;

            case "swf":

                this.mcFilePlayer.mcWidth.text = 550;

                this.mcFilePlayer.mcHeight.text = 400;

            case "rm":

            case "rmvb":

            case "mp3":

            case "avi":

            case "mpg":

            case "mpeg":

            case "asf":

            case "wmv":

            case "wma":

            default:

                this.mcWaterStyle.visible = false;

                this.mcFilePlayer.visible = false;

        }

        this.uploadInfo.text = "错误:您没有选择文件!";

//上传过程中取消

function cancelHandler(event:Event):void{

};

//当上载或下载操作开始时

function openHandler(event:Event):void{

   this.tbFilePath.visible = false;

   this.btBrowser.visible = false;

   this.btUpload.label = "取消";

   this.progressBar.visible = true;

//点击伤

function UploadHandler(event:MouseEvent):void{

   if (this.btUpload.label=="上传"){

       var WaterMarkStyleP:String = "";

       if(this.mcWaterStyle.style0.selected == true)

           WaterMarkStyleP = "0";

       else if(this.mcWaterStyle.style1.selected == true)

           WaterMarkStyleP = "1";

       else if(this.mcWaterStyle.style2.selected == true)

           WaterMarkStyleP = "2";

       var mcFilePlayerP:String="&width="+this.mcFilePlayer.mcWidth;

       mcFilePlayerP += "&height="+this.mcFilePlayer.mcHeigth;

       if(this.mcFilePlayer.mcAutoYes.selected == true)

           mcFilePlayerP += "&auto=true";

       else if(this.mcFilePlayer.mcAutoNo.selected == true)

           mcFilePlayerP += "&auto=false";

       uploadURL.url="http://localhost:11452/UploadFile.aspx?type=1";

       //uploadURL.url="Upload_File_SWF.aspx?WaterMarkStyle="+WaterMarkStyleP+mcFilePlayerP;

       fileRef.upload(uploadURL);

   }else if(this.btUpload.label=="取消"){

       this.tbFilePath.visible = true;

       this.mcWaterStyle.visible = false;

       this.mcFilePlayer.visible = false;

       this.btBrowser.visible = true;

       this.btUpload.label = "上传";

       this.progressBar.visible = false;

       this.uploadInfo.text="";

   }else if(this.btUpload.label=="重新上传"){

//在文件上载或下载操作期间定期调用

function progressHandler(event:ProgressEvent):void{

   //var fileRef:FileReference = FileReference(event.target);

   if(event.bytesLoaded==event.bytesTotal){

       this.uploadInfo.text= "正在转移数据,请稍后--"+getSizeType(event.bytesLoaded)+"/"+getSizeType(event.bytesTotal);

       this.progressBar.mcMask.width = (event.bytesLoaded/event.bytesTotal)*this.progressBar.mcLoaded.width;

       this.uploadInfo.text="上传文件中,请等待--"+getSizeType(event.bytesLoaded)+"/"+getSizeType(event.bytesTotal);

function completeHandler(event:Event):void {

   //trace("completeHandler: " + event);

   this.tbFilePath.visible = true;

   this.tbFilePath.text = "";

   this.btBrowser.visible = true;

   this.btUpload.label = "上传";

   //this.uploadInfo.text = "上传成功!";

function uploadCompleteDataHandler(event:DataEvent):void {

   if(event.data.indexOf("|")!=-1){

       var fileInfoArr = event.data.split("|");

       if(fileInfoArr[0].toLowerCase()=="true"){

           this.uploadInfo.text = "上传成功:"+fileInfoArr[1]+"!";

           if(comJsFun!=""){

               //ExternalInterface.call("UploadForEditor","hh");

               ExternalInterface.call("UploadForEditor",event.data.replace("true|",""));

               //this.tbFilePath.text = event.data;

           }

       }else{

           this.uploadInfo.text = "上传失败:"+EncodeUtf8(fileInfoArr[1])+"!";

   trace("uploadCompleteData: " + event.data);

//错误事件

function httpStatusHandler(event:HTTPStatusEvent):void {

  trace("httpStatusHandler: " + event);

  this.mcWaterStyle.visible = false;

  this.mcFilePlayer.visible = false;

  this.uploadInfo.text="HTTP错误: " +  event;

function ioErrorHandler(event:IOErrorEvent):void {

  trace("ioErrorHandler: " + event);

  this.uploadInfo.text="IO错误: " +  event;

function securityErrorHandler(event:SecurityErrorEvent):void {

  trace("openHandler: " + event);

  this.uploadInfo.text="IO安全设置错误: " +  event;

/*--------------------以下为常用函数-------------

---------------------------------------------*/

//处理文件大小表示方法

function getSizeType(s)

{

   var danwei = ["Byte","KB","MB","GB" ];

   var d = 0;

   while ( s >= 900 )

   {

       s = Math.round(s*100/1024)/100;

       d++;

   return s+danwei[d];

function getFlashVars(parName){

   var parValue:String=stage.loaderInfo.parameters[parName];

   if(parValue==null)

      return "";

   else

      return parValue;

//转换乱码

function EncodeUtf8(str : String):String {

   var oriByteArr : ByteArray = new ByteArray();

   oriByteArr.writeUTFBytes(str);

   var tempByteArr : ByteArray = new ByteArray();

   for (var i = 0; i<oriByteArr.length; i++) {

       if (oriByteArr[i] == 194) {

           tempByteArr.writeByte(oriByteArr[i+1]);

           i++;

       } else if (oriByteArr[i] == 195) {

           tempByteArr.writeByte(oriByteArr[i+1] + 64);

       } else {

           tempByteArr.writeByte(oriByteArr[i]);

   tempByteArr.position = 0;

   return tempByteArr.readMultiByte(tempByteArr.bytesAvailable,"chinese");

   //return tempByteArr.readMultiByte(tempByteArr.bytesAvailable,"chinese");

继续阅读