Flex上传单个文件

来源:互联网 发布:psv游戏淘宝哪家店好 编辑:程序博客网 时间:2024/05/16 06:11
Flex上传单个文件的源码如下:
<?xml version="1.0" encoding="utf-8"?><s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"    xmlns:s="library://ns.adobe.com/flex/spark"    xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"  creationComplete="appComplete()"><fx:Declarations><!-- 将非可视元素(例如服务、值对象)放在此处 --></fx:Declarations><fx:Script><![CDATA[import mx.events.CloseEvent;import flash.net.FileReference;import mx.controls.Alert;private var fileReference:FileReference;private var urlRequest:URLRequest;private function appComplete():void{fileReference = new FileReference();fileReference.addEventListener(Event.SELECT, onSelect); fileReference.addEventListener(Event.COMPLETE,onComplete);urlRequest = new URLRequest("http://localhost:8666/Ashx/FileHandler.ashx");}//上传private function browse():void{var imageTypes:FileFilter = new FileFilter("图片 (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg; *.jpeg; *.gif; *.png");var allTypes:Array = new Array(imageTypes);try{fileReference.browse(allTypes);}catch(e:Error){Alert.show(e.message+"&&"+e.getStackTrace());}}//文件被选择后调度private function onSelect(evt:Event):void{labelState.text="文件:"+fileReference.name+"      "+"大小:"+fileReference.size+"字节";fileReference.load();}//fileReference.load()运行成功后调度private function onComplete(evt:Event):void{image.source=fileReference.data;}//确认上传警告private function upload():void{fileReference.addEventListener(ProgressEvent.PROGRESS,onPROGRESS);fileReference.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,onUPLOAD_COMPLETE_DATA);Alert.show("上传?","确认",Alert.YES|Alert.NO,null,proceedWithUpload);}//执行上传private function proceedWithUpload(evt:CloseEvent):void{if(evt.detail == Alert.YES){fileReference.upload(urlRequest);}}//侦听上传进度private function onPROGRESS(evt:ProgressEvent):void{labelState.text = " 已上传 " + evt.bytesLoaded + " 字节,共 " + evt.bytesTotal + " 字节";fileReference.removeEventListener(ProgressEvent.PROGRESS,onPROGRESS);}//侦听成功上传private function onUPLOAD_COMPLETE_DATA(evt:DataEvent):void{if(evt.data == " Success"){Alert.show("上传成功");}fileReference.removeEventListener(DataEvent.UPLOAD_COMPLETE_DATA,onUPLOAD_COMPLETE_DATA);} ]]></fx:Script><mx:Button label="浏览文件" click="browse()"/><mx:Button label="上传" click="upload()" x="78"/><mx:Label id="labelState" y="30" width="369" height="19"/> <mx:Image id="image" visible="true" x="50" y="138" width="150" height="180"/></s:Application>
其中处理上传并保存的那个地址所对应的页面的处理过程如下("http://localhost:8666/Ashx/FileHandler.ashx"):
 public class FileHandler : IHttpHandler    {        public void ProcessRequest(HttpContext context)        {            HttpPostedFile FileData = context.Request.Files["Filedata"];            string result = "";            try            {               // result = Path.GetFileName(FileData.FileName);//获得文件名                string ext = Path.GetExtension(FileData.FileName);//获得文件扩展名                string newFileName=Guid.NewGuid().ToString();                string saveName =newFileName + ext;//实际保存文件名                saveFile(FileData, context.Request.MapPath("~" + context.Request["folder"] + "/"), saveName);//保存文件                result = saveName;            }            catch (Exception ex)            {                result = "";            }            context.Response.ContentType = "text/plain";            context.Response.Write(result);        }        private void saveFile(HttpPostedFile postedFile, string phyPath, string saveName)        {            if (!Directory.Exists(phyPath))            {                Directory.CreateDirectory(phyPath);            }            try            {                postedFile.SaveAs(phyPath + saveName);            }            catch (Exception e)            {                throw new ApplicationException(e.Message);            }        }        public bool IsReusable        {            get            {                return false;            }        }    }


原创粉丝点击