`
andrew.yulong
  • 浏览: 172591 次
  • 性别: 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>
分享到:
评论

相关推荐

    Flex+SpringMVC HttpService 发送XML数据

    本文将详细介绍如何使用Flex的HttpService组件向SpringMVC应用发送XML数据,并进行交互。 一、Flex中的HttpService组件 1. 创建HttpService:在Flex项目中,通过MXML或ActionScript可以创建HttpService实例。设置...

    springmvc与Flex集成示例

    4. **编写Flex客户端代码**:在Flex界面中,使用HTTPService或RemoteObject组件调用服务接口,处理响应数据并更新视图。 5. **测试与调试**:发布Flex应用,通过浏览器或Flex测试工具与Spring MVC服务进行交互,...

    springMVC与flex整合项目

    SpringMVC与Flex整合是构建富互联网应用程序(RIA)的一种常见技术组合,它允许开发者创建交互性强、用户体验良好的Web应用。下面将详细讲解这个项目的背景、核心概念以及整合过程。 **1. SpringMVC框架** ...

    WEB项目集成Flex3功能

    3. **WEB项目集成Flex功能**:Web项目中嵌入Flex组件,这是本文所介绍的方法,即在现有的Web应用基础上添加Flex功能。 为了实现这一集成,首先需要确保开发环境准备妥当,包括安装MyEclipse 7.5、Flex Builder 4 ...

    Flex+spring+mybatis架构搭建

    Flex的优势在于它提供了一个丰富的组件库,使得开发者可以轻松创建动态、响应式的用户界面,支持跨平台运行。 Spring框架是Java企业级应用开发的核心工具,它强调的是简化开发、依赖注入和面向切面编程。Spring提供...

    spring 整合flex,整合webService

    4. **Flex客户端开发**:在Flex项目中,使用`RemoteObject`或`WebService`组件来调用后端的服务。`RemoteObject`更适用于AMF通信,而`WebService`则用于SOAP WebServices。通过这些组件,Flex可以方便地调用Spring中...

    flex+hibernate+Spring

    Flex 是 Adobe 推出的一款用于构建富互联网应用程序(RIA)的开发框架,主要基于 ActionScript 和 MXML,提供了丰富的图形用户界面组件库,使得开发者能够创建出交互性强、视觉效果优秀的Web应用。 Hibernate 是一...

    flex与 struts2与 hibernate与spring集成实例项目

    本项目“flex与struts2与hibernate与spring集成实例项目”就是一个典型的案例,它整合了四个关键的技术:Flex前端展示、Struts2作为MVC框架、Hibernate作为持久层框架以及Spring作为依赖注入和整体应用管理框架。...

    BlazeDS+Spring+SpringMVC 注解方式配置文件

    BlazeDS、Spring 和 SpringMVC 是三个在Java Web开发中至关重要的技术组件。BlazeDS 是一个开源的服务器端技术,主要用于实现Flex和Ajax应用与后端服务器的数据交互,支持AMF(Action Message Format)协议,提供低...

    flex + java教程

    - **自定义组件** 允许开发者扩展 Flex 的功能,通过创建新的组件来满足特定需求。 - 创建自定义组件涉及定义新的 MXML 类,并实现必要的功能。 - 这种能力极大地增强了 Flex 的灵活性。 ### 9. 页面跳转与路由 - ...

    java经典框架springmvc+mybatis

    Flex和Laszlo:新的显示层技术,支持富客户端应用,是目前的较前沿的显示技术。 EJB :EJB的全称是Enterprise JavaBeans,是Java中的商业应用组件技术。 Java Web开发周边技术: HTML、Javascript、CSS、XML、...

    工作周报模板

    4. **工作建议**: 叶建红在本周没有遇到理解上的问题,这表明他在学习过程中可能已经有效地解决了疑惑,或者对所学内容有深入的理解。他的工作建议未在报告中具体说明,但通常会包含对改进工作效率、解决问题或...

    技术架构选型报告方案

    - 展示层:面向B/S架构,采用JSP、JS、AJAX和Flex等技术,向用户展现信息并执行命令。 - 控制层:转发、调度展示层请求,进行基础验证,并自动拦截后台异常。 - 领域层:处理系统业务逻辑,包括业务服务和领域...

    前端开发简历模板-web前端开发工程师-3年.doc

    *掌握DIV+CSS布局,使用rem基础布局、弹性盒模型(flex)进行移动端布局*:这句话表明该前端开发工程师具有HTML和CSS基础知识,能够使用DIV和CSS进行布局,了解rem基础布局和flex箱模型的使用。 二、JavaScript基础...

    项目技术架构选型方案报告

    - **展示层**:主要包括JSP、JS和各类界面控件,采用AJAX和Flex等RIA技术提升用户体验。 - **控制层**:处理展示层请求的转发、调度以及基础验证,自动拦截并处理后台运行时异常。 - **领域层**:负责处理业务逻辑,...

    Java Web部分项目

    1. **J2EE平台**:这是一个用于开发和部署企业级应用的Java平台,包含了Java Servlet、JavaServer Pages (JSP)、JavaBean、EJB(Enterprise JavaBeans)等多种组件和技术。 2. **MVC设计模式**:Model-View-...

Global site tag (gtag.js) - Google Analytics