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

Flex上传下载组件

 
阅读更多

Flex Java 上传 下载 组件 收藏
事前准备就是到http://commons.apache.org下载common-fileupload-1.1.1.jar以及common-io-1.2.jar两个包。
前台Flex代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns="*" creationComplete="init();">
<mx:Script>
<![CDATA[
import flash.net.FileReference;
import mx.controls.Alert;
import mx.events.CloseEvent;
import flash.events.*;

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");
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("http://localhost:8080/FileUploaded/FileUploaded");
try {
file.upload(request);
} catch (error:Error) {
trace("上传失败");
}

}
}
]]>
</mx: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" themeColor="#F20D7A"
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>

http://localhost:8080/FileUploaded/FileUploaded就是你自己写的servlet的路径了。

接下来写的是Java Servlet:

package upload;
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 FileUploaded 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://a//";

// 限制文件的上传大小

    private int maxPostSize = 100 * 1024 * 1024;

    public FileUploaded() {
        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>

}

如果使得你的Servlet被访问,你还需要在WEB-INF/web.xml 添加如下的xml语句:[在<web-app>中]

<!-- For file uploaded -->
   <servlet>
        <servlet-name>FileUploaded</servlet-name>
        <servlet-class>upload.FileUploaded</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>FileUploaded</servlet-name>
        <url-pattern>/FileUploaded</url-pattern>
    </servlet-mapping>


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhao2271394/archive/2009/09/18/4560936.aspx

分享到:
评论

相关推荐

    flex文件上传下载组件

    Flex文件上传下载组件是基于Adobe Flex技术和Java后端开发的一款功能强大的交互式应用程序,它允许用户在Web浏览器中实现文件的便捷上传与下载。这款组件通常由前端的Flex客户端和后端的Java服务器端两部分组成,...

    flex 图片上传组件 php服务

    首先,让我们理解Flex图片上传组件的工作原理。Flex通常使用ActionScript编程,它是基于ECMAScript的一个面向对象的语言。在图片上传组件中,开发者可以创建一个用户友好的界面,包含一个或多选文件输入控件,用户...

    Flex文件上传组件

    Flex文件上传组件是一种基于Adobe Flex技术的用户界面组件,用于在Web应用中实现文件上传功能。Flex是一个开源的RIA(富互联网应用)框架,它允许开发者创建交互性强、图形丰富的Web应用。在这个组件中,用户可以...

    Flex文件上传的组件

    Flex文件上传组件是一种基于Adobe Flex技术的用户界面组件,它允许用户在Web应用程序中选择并上传文件。在Flex中,这种组件通常会显示一个文件选择对话框,让用户选择要上传的文件,并且会提供一个进度条来显示上传...

    Flex附件上传下载

    在Flex上传文件的场景中,我们需要创建一个自定义的HttpHandler,处理POST请求,并接收从Flex客户端传来的文件数据。接收到文件后,可以将其保存到服务器的指定位置。 下载部分则相对简单,通常由Flex客户端发起...

    Flex上传文件与下载

    ### Flex与Servlet结合实现文件上传及下载功能 在Flex与Servlet技术结合的背景下,本文将详细介绍如何通过这两种技术实现文件的上传与下载功能。通过分析提供的代码片段,我们可以看到一个典型的Flex应用程序界面...

    Flash多文件上传组件(Flex版)

    Flash多文件上传组件是Web开发中的一个重要工具,尤其在Flex技术框架下,它提供了一种高效、用户友好的方式来处理多个文件同时上传的需求。在Web应用中,传统的HTML表单仅支持单个文件的上传,这在处理大量或者批量...

    自己封装的Flex文件上传组件FileInput

    《自封装Flex文件上传组件FileInput详解》 在IT行业中,开发用户友好的文件上传功能是常见的需求。本文将深入探讨一个自封装的Flex文件上传组件——FileInput,旨在帮助开发者更好地理解和应用这一工具,提升项目的...

    Flex 多文件上传组件

    Flex多文件上传组件是一种在Adobe Flex环境中实现的高级功能,允许用户一次性选择并上传多个文件。这个组件在Web应用程序中非常实用,特别是在处理大量图片、文档或其他类型文件上传的场景下,大大提升了用户体验。 ...

    flex上传文件夹插件

    Flex上传文件夹插件是一种基于Adobe Flex技术的组件,它扩展了Flex应用程序的功能,使得用户能够轻松地上传整个文件夹,而不仅仅是个别文件。在传统的Web应用中,上传文件通常局限于单个文件的选择,而Flex上传...

    flex上传下载 并解决中文乱码

    Flex上传下载功能在企业应用中十分常见,尤其是在处理大量数据交互时。Flex作为一个富客户端的开发框架,提供了强大的用户界面创建能力,同时支持与服务器之间的数据传输。在本主题中,我们将深入探讨如何使用Flex...

    flex 文件上传下载完整代码(废弃--代码有错误)

    在本文中,我们将深入探讨基于Flex的文件上传和下载功能,以及如何利用FileReference类来实现这一过程。Flex是Adobe Flash Platform的一部分,它提供了一种强大的方式来构建富互联网应用程序(RIA)。在Flex中,我们...

    Flex 上传组件(可选择文件类型)

    总的来说,创建一个Flex上传组件,允许用户选择特定类型的文件,并带有滚动条功能,需要结合使用`FileReferenceList`、`Button`、`List`和可能的`HTTPService`组件。通过对这些组件的属性和事件的配置,我们可以实现...

    flex文件上传下载,在线以pdf形式浏览文件

    本篇文章将详细讲解如何实现"flex文件上传下载,在线以pdf形式浏览文件"这一功能。 首先,让我们了解一下“flex”在这里的含义。Flex通常指的是Adobe Flex,一个用于构建富互联网应用(RIA)的开源框架。它基于...

    FLEX上传下载的FLEX项目源码.docx

    【SSH框架下的文件上传下载实现】 在J2EE开发中,文件上传下载是一个常见的功能,传统的解决方案如SmartUpload和Apache的FileUpload等虽然成熟,但在Struts+Spring+Hibernate(SSH)这一流行的Java企业级应用框架下...

    flash上传文件,flex上传,无刷新上传,php上传,含源码

    接着,我们来看“Flex上传”。Flex是基于ActionScript 3.0的开放源码框架,用于构建富互联网应用程序(RIA)。它可以利用Flash Player运行,提供更丰富的用户界面和交互体验。"upload(批量).fla"是一个Flex项目文件...

    flex上传控件,带进度、时间、速度显示

    Flex上传控件是一种基于Adobe Flex技术的用户界面组件,它允许用户在Web应用程序中上传文件。Flex是一个开源的开发框架,主要用于构建富互联网应用程序(RIA),它可以创建动态、交互式的Web应用,支持丰富的图形和...

    Flex+WebService附件上传下载

    本教程将探讨如何利用Flex作为前端客户端,通过WebService进行附件的上传和下载操作。 Flex是一款由Adobe开发的开源框架,主要用于创建交互式的、基于Flash Player或Adobe AIR的RIA。它提供了丰富的用户界面组件库...

    flex图片上传带预览功能

    标题"flex图片上传带预览功能"表明我们将讨论如何在Flex应用中整合图片上传和预览这两个关键组件。通常,这个过程涉及到以下步骤: 1. **图片选择**:用户通过文件选择对话框选择图片。在Flex中,我们可以使用`...

Global site tag (gtag.js) - Google Analytics