`
aimy_2012
  • 浏览: 18900 次
  • 性别: Icon_minigender_1
  • 来自: 山东
社区版块
存档分类
最新评论

Flex+JAVA+Servlet 实现上传

    博客分类:
  • Flex
阅读更多

Flex 页面代码
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
				xmlns:s="library://ns.adobe.com/flex/spark" creationComplete="init()"
				xmlns:mx="library://ns.adobe.com/flex/mx" 
				minWidth="955" minHeight="600">
	<fx:Declarations>
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			import flash.events.*;
			import flash.net.FileReference;
			
			import mx.controls.Alert;
			import mx.events.CloseEvent;
			
			private var file: FileReference;
			
			private function init(): void{
				Security.allowDomain("*");
				file = new FileReference();
				file.addEventListener(ProgressEvent.PROGRESS, onProgress);
				file.addEventListener(Event.SELECT, onSelect);
				file.addEventListener(Event.COMPLETE, completeHandle);
			}
			
			private function completeHandle(event:Event):void{
				Alert.show("恭喜你,上传成功");
			}
			
			private function upload(): void{
				var imageTypes:FileFilter = new FileFilter("Images (*.jpg, *.jpeg, *.png)", "*.jpg;*.jpeg;*.png;*.xlsx");
				var allTypes:Array = new Array(imageTypes);
				file.browse(allTypes);
				file.browse();
			}
			private function onSelect(e: Event): void{
				Alert.show("上传 " + file.name + " (共 "+Math.round(file.size)+" 字节)?",
					"确认上传",
					Alert.YES|Alert.NO,
					null,
					proceedWithUpload);
			}
			
			private function onProgress(e: ProgressEvent): void{
				lbProgress.text = " 已上传 " + e.bytesLoaded
					+ " 字节,共 " + e.bytesTotal + " 字节";
				var proc: uint = e.bytesLoaded / e.bytesTotal * 100;
				bar.setProgress(proc, 100);
				bar.label= "当前进度: " + " " + proc + "%";
			}
			
			private function proceedWithUpload(e: CloseEvent): void{
				if (e.detail == Alert.YES){
					var request: URLRequest = new URLRequest("ImportExcelServlet");
					try {
						file.upload(request);
					} catch (error:Error) {
						Alert("上传失败");
					}
					
				}
			}
		]]>
	</fx:Script>
	<mx:Canvas width="100%" height="100%" x="10" y="170" fontSize="15">
		<mx:VBox width="100%" horizontalAlign="center">
			<mx:Label id="lbProgress" text="上传"/>
			<mx:ProgressBar id="bar" labelPlacement="bottom"
							minimum="0" visible="true" maximum="100" label="当前进度: 0%"
							direction="right" mode="manual" width="200"/>
			
			<mx:Button label="上传文件" click="upload();"/>
		</mx:VBox>
	</mx:Canvas>
</mx:Application>



JAVA 代码
package com.sddl.util;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
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;

/**
 *
 * @author crystal
 */
public class ImportExcelServlet extends HttpServlet {

    /**
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     */
    // 定义文件的上传路径

    private String uploadPath = "d:\\";

// 限制文件的上传大小

    private int maxPostSize = 100 * 1024 * 1024;

    public ImportExcelServlet() {
        super();
    }

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

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        System.out.println("Access !");
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

//保存文件到服务器中

        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();
                    System.out.println(name);
                    try {
                        item.write(new File(uploadPath + name));
//                        SaveFile s = new SaveFile();

//                        s.saveFile(name);

                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        } catch (FileUploadException e) {
            e.printStackTrace();
            System.out.println(e.getMessage() + "结束");
        }
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">

    /**
     * Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     */
    public String getServletInfo() {
        return "Short description";
    }
    // </editor-fold>

}


web.xml
<!-- test -->
	<servlet>
		<servlet-name>ImportExcelServlet</servlet-name>
		<servlet-class>com.sddl.util.ImportExcelServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>ImportExcelServlet</servlet-name>
		<url-pattern>/ImportExcelServlet</url-pattern>
	</servlet-mapping>

来源:http://yexin218.iteye.com/blog/207219
分享到:
评论

相关推荐

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

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

    Flex+Java Servlet处理文件上传

    Flex+Java Servlet处理文件上传 关于上传文件

    Flex+Java 文件上传

    在本文中,我们将深入探讨如何实现Flex与Java Servlet结合进行文件上传。首先,我们需要了解Flex是一种基于Adobe AIR的开源框架,用于构建富互联网应用程序(RIA),而Java Servlet是Java平台上的一个标准,用于处理...

    flex+java文件上传

    Flex和Java文件上传技术是Web应用中常见的功能,主要用于用户在网页端上传本地文件到服务器。Flex是一款由Adobe公司开发的开源框架,主要用于构建富互联网应用程序(Rich Internet Applications,RIA)。它基于...

    Flex+Java Servlet文件上传实例

    【标题】"Flex+Java Servlet文件上传实例"指的是一个结合了Adobe Flex前端技术和Java Servlet后端技术的文件上传系统。Flex是一种基于ActionScript和Flash Player的开放源代码框架,用于构建富互联网应用程序(RIA)...

    Flex+Java Servlet处理文件上传.doc

    Flex+Java Servlet处理文件上传

    flex+java文件上传完整实例

    本示例“flex+java文件上传完整实例”提供了一个完善的解决方案,它结合了Adobe Flex前端技术和Java后端技术,实现了用户友好的文件上传功能。Flex是一种开源的RIA(富互联网应用)开发框架,而Java则提供了强大的...

    flex + java上传

    本教程将深入探讨如何结合Flex前端和Java后端实现文件上传功能。 1. Flex基础知识: - Flex是ActionScript 3.0的框架,用于创建具有交互性和动态UI的Web应用。 - Flex项目通常由.mxml和.as文件组成,mxml用于定义...

    Flex+Java多文件上传

    标题中的“Flex+Java多文件上传”指的是使用Adobe Flex(一种富互联网应用程序开发框架)与Java技术相结合,实现用户在Web应用中上传多个文件的功能。这个功能通常涉及到前端的用户界面设计、后端的文件处理逻辑以及...

    Flex+Java+BlazeDS多文件上传

    标题“Flex+Java+BlazeDS多文件上传”涉及到的技术栈是Adobe Flex、Java和BlazeDS,这三种技术在Web应用开发中常用于构建富客户端应用和实现服务器端的数据交互。下面将详细阐述这些技术及其在多文件上传场景中的...

    Flex+java上传开发工具包

    综上所述,Flex+Java上传开发工具包为开发人员提供了一套完整的解决方案,帮助他们轻松实现Web应用中的文件上传功能,兼顾易用性、性能和安全性。无论是在企业级应用还是个人项目中,这套工具包都是一个值得信赖的...

    Flex+Java 实现文件上传

    总的来说,理解和实现Flex与Java结合的文件上传功能需要掌握前端的Flex编程、后端的Java Servlet或Spring MVC技术,以及HTTP协议的基础知识。同时,熟悉文件I/O操作、安全性考量和用户界面设计也是必不可少的。通过...

    flex+java做的一个文件图片上传功能

    在Flex和Java集成开发环境中,实现文件图片上传功能是一项常见的需求。这个功能主要涉及客户端的用户界面交互和服务器端的数据处理。在这个场景中,我们利用Adobe Flex作为前端UI框架,结合Java后端来处理文件上传...

    flex和java做的图片上传的小例子

    本示例探讨的是如何使用Adobe Flex与Java技术来实现一个简单的图片上传功能。Flex是一种基于ActionScript 3的开源框架,用于构建富互联网应用程序(RIA),而Java则是一种广泛使用的后端开发语言,二者结合可以创建...

    flex3+java文件上传

    在提供的压缩包“flex3+java文件上传”中,可能包含了一个完整的示例项目,包括Flex的源代码、Java的Servlet代码以及必要的配置文件。导入这个项目后,可以直接运行并测试文件上传功能,这对于学习和理解Flex3与Java...

    flex + servlet 多文件上传

    本示例主要涉及了`Flex`和`Servlet`技术的结合,用于实现多文件上传的功能。`Flex`是一种基于Adobe Flash Player或Adobe AIR运行时的富互联网应用程序(RIA)开发框架,而`Servlet`则是Java Web开发中的服务器端组件...

Global site tag (gtag.js) - Google Analytics