`
titanxi
  • 浏览: 20196 次
  • 来自: ...
社区版块
存档分类
最新评论

Flex+seam 文件上传

    博客分类:
  • Seam
阅读更多
Flex:
FileUpload.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml">


	<mx:Script>
		<![CDATA[
			import com.gptri.core.GlobalParam;
			import flash.net.FileReference;
			import com.gptri.gpweb.component.StatusEnum;
			import org.granite.tide.events.TideUIEvent;
			private var fileRef:FileReference =new FileReference();;

			private var gp:GlobalParam=GlobalParam.getInstance();

			public function get fileName():String
			{
				return fileRef.name;
			}

			private function fileBrowse():void
			{
				fileRef.addEventListener(Event.SELECT, selectHandler);
				fileRef.addEventListener(ProgressEvent.PROGRESS, onProgress);
				fileRef.addEventListener(Event.COMPLETE, completeHandler);	
				var gifFilter:FileFilter=new FileFilter("PowerPoint", "*.ppt", "PPT");
				fileRef.browse([gifFilter]);
			}
			private function onProgress(e:ProgressEvent):void
			{
				var proc:uint=e.bytesLoaded / e.bytesTotal * 100;
				dispatchEvent(new TideUIEvent("statusChange", "当前进度: " + " " + proc + "%", StatusEnum.WORKING));
			}
			private function selectHandler(event:Event):void
			{
				var request:URLRequest=new URLRequest(gp.sysHost + "FileUploadServlet");
				fileRef=FileReference(event.target);
			
				fileRef.upload(request);
				
			}

			private function completeHandler(event:Event):void
			{
				dispatchEvent(new Event("uploadComplete"));
			}
		]]>
	</mx:Script>

	<mx:Button click="fileBrowse()" label="上传文件" fontSize="12"/>
</mx:Canvas>

Application
			public function init():void
			{
				fileUpload.addEventListener("uploadComplete", uploadComplete);
			}
		[Observer("uploadComplete")]
			public function uploadComplete(e:Event):void
			{

				weekReportSearch.uploadPPT(uploadPPTResult);
			}
			private function uploadPPTResult(e:TideResultEvent):void
			{
				dispatchEvent(new TideUIEvent("statusChange", e.result as String, StatusEnum.WORKING));
				CursorManager.removeBusyCursor();
			}
			<cs:FileUpload id="fileUpload"/>



java Servelet :需要common-io,commons-fileupload包

import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;

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

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

public class FileUploadServlet extends HttpServlet {
	// 定义文件的上传路径
	private String uploadPath = "D:\\upload\\";
	// 限制文件的上传大小
	private int maxPostSize = 100 * 1024 * 1024;

	public FileUploadServlet() {

		super();
	}

	public void destroy() {
		super.destroy();
	}

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 保存文件到服务器中
		response.setContentType("text/html; charset=UTF-8");
		DiskFileItemFactory factory = new DiskFileItemFactory();
		factory.setSizeThreshold(4096);
		ServletFileUpload upload = new ServletFileUpload(factory);
		upload.setSizeMax(maxPostSize);
		try {
			List fileItems = upload.parseRequest(request);
			Iterator iter = fileItems.iterator();
			while (iter.hasNext()) {
				FileItem item = (FileItem) iter.next();
				if (!item.isFormField()) {
					String name = item.getName();
					request.getSession().setAttribute("uploadFile",
							uploadPath + name);
					System.out.println(name);
					try {
						item.write(new File(uploadPath + name));
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			}
		} catch (FileUploadException e) {
			e.printStackTrace();
		}
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}

	public void init() throws ServletException {
		// Put your code here
	}
}

seam 组件
@Name("weekReportSearch")
@Scope(EVENT)
@TideEnabled
public class WeekReportSearchingAction {
	@In
	private EntityManager entityManager;

	@In(required = false)
	private String uploadFile;
	public String uploadPPT() {
        //SlideShow ppt = new SlideShow(new HSLFSlideShow(uploadFile));
          // Put your code here
	}



配置文件:
web.xml中添加
	<servlet>
	
	        <servlet-name>FileUploadServlet</servlet-name>
	       <servlet-class>com.gptri.gpweb.service.util.FileUploadServlet</servlet-class>
	</servlet>
	<servlet-mapping>
	        <servlet-name>FileUploadServlet</servlet-name>
	        <url-pattern>/FileUploadServlet</url-pattern>
	</servlet-mapping>
	<filter>
		<filter-name>Seam Multipart Filter</filter-name>
	        <filter-class>org.jboss.seam.web.MultipartFilter</filter-class>
	</filter>
	
	<filter-mapping>
		<filter-name>Seam Multipart Filter</filter-name>
		<url-pattern>*.seam</url-pattern>
	</filter-mapping>   


components.xml 添加
  <web:multipart-filter create-temp-files="true"
	max-request-size="104857600"
        url-pattern="*.seam"/>    

分享到:
评论

相关推荐

    jsf+seam+jpa实例

    **JSF、Seam与JPA整合实例详解** 在现代Web应用开发中,JavaServer Faces (JSF)、Seam框架和Java Persistence API (JPA)是三个关键的技术组件。本实例将深入探讨如何利用这三者进行联合开发,帮助开发者实现高效、...

    Struts+spring+hibernate3---JSP+javabean+DAO---JSF+richfaces+seam+EJB

    1)JSP+javabean+DAO(Ajax:anywhere) 2)Struts+spring+hibernate3(AJax:DOJO) 3)JSF+richfaces+seam+EJB 总共3个完整的实例,并配有需求分析~~~~~~~~,绝对经典!

    jboss教程及深入浅出JBoss+Seam

    【JBoss教程及深入浅出JBoss+Seam】是一个针对企业级Java应用服务器JBoss的深度学习资源,其中包含了两个主要部分:JBoss教程和对JBoss与Seam框架结合使用的详细介绍。这两个主题都是Java开发人员在部署和管理企业...

    maven+jetty+seam+hibernate

    【标题】"maven+jetty+seam+hibernate"是一个集成开发环境的配置,主要用于Java Web应用的快速开发。这个组合充分利用了Maven的项目管理和构建能力,Jetty的轻量级服务器特性,Seam的Java EE集成框架,以及Hibernate...

    JSF+Seam帮助文档.rar

    它涵盖了Seam框架的安装、配置以及如何在项目中使用Seam的各种功能。Seam的强项在于其对JSF的增强,例如它提供的导航控制、自动数据绑定和转换等特性,使得JSF的应用开发更为便捷。 **J2EE(Java 2 Platform, ...

    Spring 2.5中文手册+hibernate手册+Seam_2.0_R中文手册

    Seam 2.0_R中文手册则聚焦于Seam框架,这是一个整合了JSF(JavaServer Faces)、EJB 3、JPA(Java Persistence API)等技术的全栈式框架。Seam的目标是提供一个无缝的开发环境,让开发者能够轻松地构建富互联网应用...

    JSF项目中seam的配置

    2. **seam.properties文件**:在工程类路径的根目录下放置一个空的`seam.properties`文件。这个文件的作用是引导Seam在初始化时扫描并加载所有标记为Seam组件的对象,这些对象通常使用`@Name`注解进行标识。 3. **...

    seam+spring+hibernate+richfaces配置

    2. **配置Seam**:在seam.properties文件中指定Hibernate配置,如数据源、实体扫描路径等。 3. **配置Spring**:创建Spring的bean配置文件,定义需要的bean,如DataSource、SessionFactory、TransactionManager等,...

    seam+richfaces环境框架配置文件

    seam+richfaces环境框架的配置文件,经过我多次尝试才配置好的环境配置文件,很有用,适合刚接触这些技术的初学者,希望大家支持!

    seam+jsf+richfaces+ajax4jsf 电子书

    Seam、JSF、RichFaces 和 Ajax4jsf 是四个重要的Java Web开发框架和技术,它们在构建现代、交互式Web应用程序中发挥着关键作用。让我们深入探讨这些技术及其结合使用时的知识点。 **1. Seam** Seam是一个开源的Java...

    《SeamInAction》+《JbossSeam》+《官方中文指南》

    Seam是一个全面的Java开发框架,专为简化企业级应用的构建而设计。它整合了JSF(JavaServer Faces)、EJB(Enterprise JavaBeans)、CDI(Contexts and Dependency Injection)、JPA(Java Persistence API)等多种...

    seam+hibernate注册例子

    在`Libraries`选项卡中,添加Seam和Hibernate的JAR文件,通常包括seam-x.x.x.jar, hibernate-core-x.x.x.jar等。 2. **配置Hibernate** - 创建Hibernate的配置文件`hibernate.cfg.xml`,设置数据库连接参数,如URL...

    jbossseam eclipse安装 例子学习.doc

    - **下载文件**:jboss-seam-2.1.1.GA.zip 4. **JBoss Tools** - **下载地址**:[www.jboss.org/tools/download/index.html](http://www.jboss.org/tools/download/index.html) - **推荐版本**:3.0.0 CR1 - *...

    eclipse 工程的 Seam 例子

    5. 编写必要的配置文件,如faces-config.xml、persistence.xml等,以连接数据库和配置Seam组件。 6. 运行工程,Seam会自动处理依赖注入和事件处理,你可以通过浏览器查看和测试JSF页面。 **总结** "Eclipse工程的...

    seam+in+action+中文版

    3. **配置文件**:Seam 项目中常用的配置文件包括 `persistence.xml`、`faces-config.xml` 和 `jboss-seam.xml`。其中 `persistence.xml` 用于配置数据源和实体管理器工厂;`faces-config.xml` 主要用于 JSF 组件的...

    seam 框架整合hibernate+jsf

    Seam框架是一个全面的Java EE应用开发框架,它旨在简化企业级应用的开发流程,尤其在整合用户界面、业务逻辑和服务层方面。本资源重点讨论了Seam如何与Hibernate ORM框架以及JavaServer Faces (JSF) 用户界面技术...

    jsf seam hibernate 初学者练习

    1. **资源文件(Resources)**:可能包含数据库连接配置、国际化文本等。 2. **实体类(Entities)**:对应数据库表的Java类,使用了Hibernate的注解进行ORM配置。 3. **持久化层(Persistence Layer)**:包含DAO...

    Seam框架文档简述

    Seam鼓励使用Java 5的注解特性来配置应用,这种方式可以减少XML配置文件的数量,提高开发效率。 ##### 7. 增强的表达式语言 Seam提供了对标准EL(Expression Language)的扩展,称为JBoss EL。这种扩展允许在...

    seam需要的jar包

    在这个“seam需要的jar包”压缩包中,包含了运行和开发Seam应用程序所需的各种库文件。 首先,Seam框架的核心依赖于JSF,这是Java EE中的一个用户界面组件框架,用于构建交互式Web应用。JSF提供了模型-视图-控制器...

Global site tag (gtag.js) - Google Analytics