`
DavyJones2010
  • 浏览: 154243 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Flex4: How to Upload File to Servlet (Part I)

    博客分类:
  • Flex
阅读更多

1. 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" 
			   creationComplete="initApp(event)"
			   minWidth="955" minHeight="600">
	<fx:Declarations>
		<!-- Place non-visual elements (e.g., services, value objects) here -->
	</fx:Declarations>
	
	<fx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import mx.events.CloseEvent;
			import mx.managers.CursorManager;
			[Bindable]
			private var fileRefText:String;
			private const FILE_UPLOAD_URL:String = "http://localhost:8080/FileUpload/FileUploadServlet";
			private var fileRef:FileReference = new FileReference();
			private function initApp(event:Event):void
			{
				fileRef.addEventListener(Event.SELECT, onFileSelect);
				fileRef.addEventListener(ProgressEvent.PROGRESS, onProgress);
				fileRef.addEventListener(Event.COMPLETE, onFileUploadComplete);
			}
			private function browse(e:Event):void
			{
				fileRef.browse([new FileFilter("FlatFile", "*.rar")]);
			}
			private function onFileSelect(e:Event):void
			{
				Alert.show("Upload: " + fileRef.name + ", size: " + Math.round(fileRef.size) + " byte ?", "Upload", Alert.YES|Alert.NO, null, proceedWithUpload);
			}
			private function onFileUploadComplete(e:Event):void
			{
				CursorManager.removeBusyCursor();
				Alert.show("File upload completed!");
			}
			private function proceedWithUpload(e:CloseEvent):void
			{
				if(Alert.YES == e.detail)
				{
					CursorManager.setBusyCursor();
					try
					{
						var urlRequest:URLRequest = new URLRequest();
						urlRequest.url = FILE_UPLOAD_URL;
						urlRequest.method = URLRequestMethod.POST;
						
						fileRef.upload(urlRequest);
					}
					catch(error:Error)
					{
						CursorManager.removeBusyCursor();
						Alert.show("Error occured during upload!");
					}
				}
			}
			private function onProgress(e:ProgressEvent):void
			{
				var proc:uint = (e.bytesLoaded / e.bytesTotal) * 100;
				progressBar.label = "Current: " + proc + "%";
			}
		]]>
	</fx:Script>
	<s:VGroup>
		<s:HGroup>
			<s:TextInput text="{fileRefText}"/>
			<s:Button label="Browse" click="browse(event)"/>
		</s:HGroup>
		<mx:ProgressBar id="progressBar" label="Current: 0%" mode="manual"/> 
	</s:VGroup>
	
</s:Application>

 

2. Server

    1) web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <servlet>
  	<servlet-name>FileUploadServlet</servlet-name>
  	<servlet-class>edu.xmu.servlet.FileUploadServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>FileUploadServlet</servlet-name>
  	<url-pattern>/FileUploadServlet</url-pattern>
  </servlet-mapping>
</web-app>

    2) FileUploadServlet.java

package edu.xmu.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class FileUploadServlet extends HttpServlet
{
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException
	{
		// TODO Auto-generated method stub
		System.out.println("doGet");
	}
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException
	{
		// TODO Auto-generated method stub
		System.out.println("doPost");
	}
}

3. Tomcat Config

    1) Tomcat dir: D:\Program Files\Tomcat 6.0\conf\server.xml

         Pay attention to <Context docBase="..." path="..." reloadable="true">, the "C" in <Context> is in upper case!


    2) Embed Tomcat into MyEclipse


 

4. Start server -> Upload File from Flex -> All done!

 

Comments:

    1) Have to add crossdomain.xml in tomcat root folder: D:\Program Files\Tomcat 6.0\webapps\ROOT

<?xml version="1.0"?>
<cross-domain-policy>
    <allow-access-from domain="*" />
</cross-domain-policy>

    2) Use FireBug track request from flex, we sometimes got error 405 as below: Delete super.doPost(req, resp); or super.doGet(req, resp); in Servlet!


 

  • 大小: 66.4 KB
  • 大小: 90.4 KB
  • 大小: 74.2 KB
分享到:
评论

相关推荐

    Flex4:开发RIA应用程序

    Flex4是Adobe公司推出的一个用于开发丰富互联网应用程序(Rich Internet Applications,简称RIA)的框架。RIA是指拥有桌面应用程序体验的网络应用程序,它能够提供响应快速、功能丰富并且更接近桌面软件用户体验的...

    Adobe Flex 4: Training from the Source Volume 1

    Adobe Flex 4: Training from the Source Volume 1 解压密码:肇庆学院主页地址(www开头的)

    Flex4:开发RIA应用程序 pdf

    本书《Flex4:开发RIA应用程序》显然是针对初学者的入门教程,旨在帮助读者掌握Flex4的开发技能。 1. **Flex4简介**:Flex4是一个开源的开发框架,它提供了丰富的组件库、强大的数据绑定机制以及灵活的皮肤和样式...

    Flex-Java-file-upload.zip_flex

    标题中的“Flex-Java-file-upload.zip_flex”表明这是一个关于使用Adobe Flex与Java进行文件上传交互的教程。Flex是一种基于ActionScript的开放源代码框架,用于构建富互联网应用程序(RIA)。它允许开发者创建动态...

    Flex与Servlet之间数据的交互

    4. 发送请求:在Flex应用中,使用URLLoader或HTTPService组件向Servlet发送请求,请求数据通常封装在AMFChannel中。 5. 处理响应:Servlet接收到请求后,进行数据处理,然后通过AMFChannel返回数据。Flex客户端通过...

    Flex 4:开发RIA 应用程序

    该书为adobe flex4认证的内部培训教材,以Adobe Flash Builder 4为基础培训,目前市面上的flex4的教材太少,这个发上来大家一起看看吧

    Learning Flex 3: Getting up to Speed with Rich Internet Applications

    从Flex3环境的搭建到一般开发情景下Flex3的界面操作,以及ActionScript语言的介绍、Flex中的数据绑定、如何通过E4X操作XML、一般数据显示控件的使用,再到Flex特有的特效运用、样式主题,以及程序的发布都有全面的...

    Adobe Flex 2: Training from the Source

    Adobe Flex 2: Training from the Source,看到有不少人在找~~~ 这本没有上传完整,请需要的朋友下载《Adobe Flex 2: Training from the Source(改)》这本~~~

    flex4+servlet批量上传

    本话题聚焦于使用Flex4客户端和Servlet服务器端实现批量上传的方案。Flex4是一种强大的富互联网应用(RIA)开发框架,而Servlet是Java Web开发中的一个核心组件,常用于处理HTTP请求。下面将详细探讨Flex4和Servlet...

    flex+servlet简单实例

    在IT行业中,Flex和Servlet是两种非常重要的技术,它们分别用于构建富客户端应用程序和服务器端逻辑。本篇文章将深入探讨这两个技术如何结合实现一个简单的实例。 Flex是一种基于ActionScript和Flash Player的开源...

    Flex3与flex4的区别

    标题和描述都聚焦于对比Flex3与Flex4之间的差异,这是一种Adobe系统提供的开源框架,用于构建跨平台的桌面和移动应用程序。Flex4,其代号为Gumbo,是在Flex3的基础上进行了重大升级,旨在改进用户体验和开发效率。...

    Flex和Servlet结合上传文件

    这里我们关注的是如何将Adobe Flex与Java的Servlet技术相结合,实现用户友好的文件上传界面。Flex作为一个强大的富客户端开发框架,可以提供美观且交互性强的用户界面,而Servlet则是Java Web应用中的标准组件,用于...

    flex滚动条三种实现方式

    在前端开发中,Flex布局(Flexible Box)是一种用于创建弹性盒模型的CSS3模块,它极大地增强了网页布局的灵活性。而当内容超出容器时,滚动条的出现是必不可少的。在Flex布局中,我们可以有几种不同的方法来实现滚动...

    Flex4.6+java+servlet上传图片例子+图片上传预览

    这个"Flex4.6+java+servlet上传图片例子+图片上传预览"的项目,结合了前端的Flex技术和后端的Java Servlet,为我们提供了一个完整的解决方案。下面将详细解释这个项目的各个组成部分及其工作原理。 首先,让我们来...

    FLEX调用Servlet连接数据库源码

    在IT行业中,FLEX与Servlet的结合是一种常见的前端与后端交互方式,特别是在构建富互联网应用程序(Rich Internet Applications,RIAs)时。本资源提供的"Flex调用Servlet连接数据库源码"是一个很好的学习实例,它...

    flex上:简单的将xml内容生成文件存到本地的一个小例子

    在Flex编程中,XML是一种常用的数据格式,用于存储和传输数据。这个小例子展示了如何在Flex应用程序中将XML内容转化为文件并保存到本地系统。Flex是Adobe开发的一种开放源码的富互联网应用(RIA)框架,它使用...

    Hello! Flex 4

    Flex 4 demonstrates how to get started without getting bogged down in technical detail or academic edge cases. In this book, User Friendly cartoon characters offer commentary and snide side comments,...

    Flex_4:开发RIA_应用程序.pdf

    ### Flex 4:开发RIA应用程序知识点总结 #### 一、Adobe Flex 4 简介与平台背景 **Adobe Flash Platform 简介** - **技术简介:** Adobe Flash Platform 是一套用于创建交互式内容的技术栈,其中包括了Adobe Flex...

    Flex调用JavaServlet将组件快照导出成图片

    File outputFile = new File("/path/to/output.jpg"); ImageIO.write(image, "jpg", outputFile); ``` 在这个过程中,"SnapShot.mxml"可能是Flex应用程序的主文件,它包含了获取组件快照和发送到服务器的代码。...

    Flex_4:开发RIA_应用程序(中文版)

    ### Flex 4:开发RIA应用程序知识点详解 #### 一、Adobe RIA开发技术认证与教材概述 - **Adobe RIA开发技术认证**:是Adobe公司为开发者提供的专业认证,旨在帮助开发者掌握创建丰富的互联网应用程序(RIA)所需的...

Global site tag (gtag.js) - Google Analytics