flex 上传图片 例子

 

 

其实flex 上传图片的 mxml 文件是很好写的,只要知道他的几个监听器就可以了。

 

ImageUpload.mxml

 

 

<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="library://ns.adobe.com/flex/mx" 
				layout="absolute" fontSize="12" creationComplete="init()"
				xmlns:fx="http://ns.adobe.com/mxml/2009"
				width="456" height="345">
	<fx:Script>
		
		<![CDATA[
			import flash.net.*;
			
			import mx.controls.Alert;
			import mx.rpc.events.ResultEvent;
			import mx.utils.*;
			var _rollBack:String = "";
			private var fileReference:FileReference=new FileReference();
			private var byteArray:ByteArray;
			private var bitmapData:BitmapData;
			private var loader:Loader=new Loader();
			
			private var request:URLRequest; 
			private function init():void
			{               
//				picUpload.addEventListener("ok",uploadsfinished);
				fileReference.addEventListener(Event.COMPLETE,fileReferenceCompleteHandler);
			}
			private function fileReferenceCompleteHandler(e:Event):void
			{
				byteArray = fileReference.data;
				loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loaderCompleteHandler);
				loader.loadBytes(byteArray);
			}
			private function loaderCompleteHandler(e:Event):void
			{
				var bitmap:Bitmap = Bitmap(loader.content);
				bitmapData = bitmap.bitmapData;
				img.source = bitmap;
//				Alert.show("bitmap===="+ObjectUtil.toString(img.source));
				
			}
			private function fileReferenceSelectHandler(e:Event):void
			{
				Alert.show("bitmap===="+ObjectUtil.toString(fileReference));
				picName.text=fileReference.name
				fileReference.load();
			}
			private function btnClick():void
			{
				fileReference.browse();
				fileReference.addEventListener(Event.SELECT,fileReferenceSelectHandler);
			}
			
			
			
			
//			public function uploadsfinished(event:Event):void{
//				// this.dispatchEvent(new Event("saveBannerContent"));
//				Alert.show("上传完成");
//			} 
			protected function button1_clickHandler(event:MouseEvent):void
			{
				// TODO Auto-generated method stub
				
					if(picName.text!=""){
						_rollBack="ok";
						request=new URLRequest
						request.url="http://192.168.0.211:80/upload"; 
						fileReference.upload(request);
						fileReference.addEventListener(IOErrorEvent.IO_ERROR,errorHandler);//文件失败上传监听事件
						fileReference.addEventListener(Event.COMPLETE,doFileUploadComplete);//文件成功上传监听事件  
						fileReference.addEventListener(SecurityErrorEvent.SECURITY_ERROR,securityErrorHandler);
						fileReference.addEventListener(HTTPStatusEvent.HTTP_STATUS,httpStatusHandler);
					}else{
						Alert.show("请选择图片","提示信息");
					}
			}
			
			//上传失败处理事件
			private function errorHandler(evt:IOErrorEvent):void{
				Alert.show(evt.text,"上传失败,检查网络");
			}
			//上传成功处理
			private function doFileUploadComplete(evt:Event):void{
				
//				Alert.show(ObjectUtil.toString(evt.));
				Alert.show("上传完成");
			} 
			
			private function onResult(evt:ResultEvent):void{
				Alert.show(ObjectUtil.toString(evt));
			}
			private function securityErrorHandler(event:SecurityErrorEvent):void{
				mx.controls.Alert.show(event.text,"Security Error",0);
			}
			
			private function httpStatusHandler(event:HTTPStatusEvent):void {
				if (event.status != 200){
					mx.controls.Alert.show(event.toString(),"上传错误",0);
				}
			} 
		]]>
		
	</fx:Script>
	
	<mx:VBox width="100%"  horizontalAlign="center">
		
	
		<mx:HBox  horizontalAlign="center"  width="100%">
			
			<mx:Label text="图片"/>
			<mx:TextInput width="201" id="picName"  /> 
			<mx:Button label="选择..." click="btnClick()"/>
			
		</mx:HBox>
		
		<mx:HBox  horizontalAlign="center" width="100%">
			<mx:Image id="img" width="263" height="234"/>
		</mx:HBox >
		
		<mx:HBox  horizontalAlign="center" width="100%">
			<mx:Button label="上传" click="button1_clickHandler(event)"/>
		</mx:HBox>
	</mx:VBox>		
		
	
</mx:TitleWindow>



 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值