`
andrew.yulong
  • 浏览: 167094 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

flex4 springmvc 上传控件

    博客分类:
  • flex
阅读更多

MiniFileUpload.mxml

 

<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
		 xmlns:s="library://ns.adobe.com/flex/spark" 
		 xmlns:mx="library://ns.adobe.com/flex/mx" width="200" height="20" creationComplete="init(event)">
	
	<fx:Script>
		<![CDATA[
			import mx.charts.CategoryAxis;
			import mx.controls.Alert;
			import mx.events.FlexEvent;
			import mx.rpc.events.FaultEvent;
			
			import net.ask123.ecommerce.util.DateUtils;
			import net.ask123.ecommerce.util.StringUtils;
			
			import spark.formatters.DateTimeFormatter;
			
			private var _refUploadFile:FileReference;
			
			//...文件类型限制 调用时传入
			public var fileFilters:Array;
			
			//...文件夹地址 调用时传入
			public var filePath:String;
			
			//...文件地址
			public var text:String;
			
			//...服务器端需要
			private var fileName:String;
			
			private function addFiles():void {
				if(fileFilters != null){
					_refUploadFile.browse(fileFilters);
				}else{
					_refUploadFile.browse();
				}
			}
			
			private function getFileName():String {
				return DateUtils.nowDateShort("yyyyMMddHH")+StringUtils.randRange(1000,9999);
			}
			
			private function onSelectFile(event:Event):void {
				try{
					var params:URLVariables = new URLVariables();
					params.name  = fileName = getFileName();
					params.filePath = filePath;
					params.action = "/fileUpload.shtml";
					
					var request:URLRequest = new URLRequest("/fileUpload.shtml");
					request.method = URLRequestMethod.POST;
					request.data = params;
					_refUploadFile.upload(request,"fileData");
				}catch(e:Error){
					Alert.show("出现异常");
				}
			}
			
			protected function init(event:FlexEvent):void
			{
				fileAddressID.text=text;
				_refUploadFile=new FileReference();
				_refUploadFile.addEventListener(Event.SELECT, onSelectFile); 
				_refUploadFile.addEventListener(Event.COMPLETE, hsResultHandler);
				_refUploadFile.addEventListener(IOErrorEvent.IO_ERROR, onUploadIoError);
			}
			
			private function hsResultHandler(event:Object):void{
				fileAddressID.text = "/upload/"+filePath+"/"+DateUtils.nowDateShort("yyyy")+"/"+
					DateUtils.nowDateShort("MM")+"/"+fileName+"."+_refUploadFile.name.split(".")[1];
				text = fileAddressID.text;
			}
			
			private function hsFaultHandler(e:FaultEvent):void{    
				Alert.show(e.fault.toString(),'http请求错误');    
			}
			
			private function onUploadIoError(event:IOErrorEvent):void {
				Alert.show(event.text);
			}
			
		]]>
	</fx:Script>
	
	<s:HGroup verticalAlign="middle">
		<s:Button id="btnAdd" width="80" label="选择文件" click="addFiles()" />	
		<s:Label id="fileAddressID" verticalAlign="middle" click="navigateToURL(new URLRequest(fileAddressID.text), '_blank')"
				 />
	</s:HGroup>
	
</s:Group>

 FileUploadController.java

 

/**
	 * 公用上传Action 
	 * UploadFile.name 文件名,从前台传人 
	 * UploadFile.filePath 路径,从前台传人 ad为存放广告的文件夹 news为存放新闻的文件夹
	 * 上传之后的路径地址为    /upload/UploadFile.filePath/今年(2012)/当月(02)/UploadFile.name
	 * 
	 * 
	 * @param file
	 * @return
	 */
	@RequestMapping(value = "fileUpload.shtml")
	@ResponseBody
	public String processImageUpload(UploadFile file) {
		try {
			File uploadFile;

			String path = Constants.FILEUPLOADADDRESS + "/"
					+ file.getFilePath() + "/" + DateUtils.getUserDate("yyyy")
					+ "/" + DateUtils.getUserDate("MM");
			FileUtils.makehome(path);

			uploadFile = new File(path + "/" + file.getName() + "."
					+ file.getFileData().getOriginalFilename().split("\\.")[1]);

			file.getFileData().getFileItem().write(uploadFile);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "{" + file.getFileData().getOriginalFilename() + "}!Success!";
	}

 剩下的一些XML配置

applicationContent.xml

 

 <bean id="multipartResolver"
		class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<!-- set the max upload size100MB -->
		<property name="maxUploadSize">
			<value>104857600</value>
		</property>
		<property name="maxInMemorySize">
			<value>4096</value>
		</property>
	</bean>

 调用的页面

 

public var imageTypes:FileFilter = new FileFilter("图片 (*.jpg, *.jpeg, *.gif,*.png)", "*.jpg; *.jpeg; *.gif; *.png");

<mx:FormItem label="图片" required="true">
			<components:MiniFileUpload id="fileUploadID" filePath="ad" text="{_adP.image_url}" fileFilters="{new Array(imageTypes)}" />
		</mx:FormItem>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics