`
pvnz95pvnz
  • 浏览: 13003 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

完整的Flex多文件上传实例

阅读更多

  客户端代码:fileUpload.xml------------------------------------ --------------------------------------------------- ----------  package util { import flash.events.Event; import flash.events.ProgressEvent; import flash.net.FileFilter; import flash.net.FileReference; import flash.net.URLRequest; import flash.system.Security; import mx.controls.Alert; import mx.events.CloseEvent; import org.hamcrest.mxml.collection.Array; public class ImportUtil { public function ImportUtil(){ init(); //初始化 } private static var fileRef:FileReference = new FileReference(); //上传的文件 /** * 进行初始化的操作 * **/ private static function init():void{ Security.allowDomain("*"); fileRef.addEventListener(ProgressEvent.PROGRESS, progressHandler); //上传过程中 fileRef.addEventListener(Event.SELECT, onSelect); //选择 fileRef.addEventListener(Event.COMPLETE, completeHandler); //上传完成 fileRef.addEventListener("ioError", ioerrorHandler); //错误提示 } /**** * 入口 ,调用该方法执行弹出窗口的操作 * */ public static function myupload():void{ init(); var imageTypes:FileFilter = new FileFilter("图片 (*.jpg, *.jpeg, *.gif,*.png)", "*.jpg; *.jpeg; *.gif; *.png"); var textTypes:FileFilter = new FileFilter("文本文件(*.txt)","*.txt;"); var officeType:FileFilter = new FileFilter("Office文件(*.doc, *.xls)","*.doc; *.xls"); var allTypes:Array = new Array( textTypes,officeType,imageTypes); try{ var success:Boolean = fileRef.browse(allTypes); }catch (error:Error){ Alert.show("无法浏览文件:"+error.toString()); return; } } //错误时调用的方法 private static function ioerrorHandler(event:Event):void{ Alert.show("上传文件出错:"+event.toString()); return; } //上传过程中 private static function progressHandler(event:ProgressEvent):void{ // lbProgress.text = " 已上传 " + (event.bytesLoaded/1024).toFixed(2)+ " K,共 " + (event.bytesTotal/1024).toFixed(2) + " K"; // var proc:uint = event.bytesLoaded / event.bytesTotal * 100; // progress1.setProgress(proc, 100); // progress1.label= "当前进度: " + " " + proc + "%"; } //选择 private static function onSelect(e: Event): void{ trace(fileRef.name); Alert.show("导入 " + fileRef.name + " (共 "+Math.round(fileRef.size)+" 字节)?", "确认?", Alert.YES|Alert.NO, null, selectHandler); } private static function selectHandler(event:CloseEvent):void{ if(event.detail == Alert.NO) return; var request:URLRequest = new URLRequest("http://localhost:8080/ysdsTas/UploadSe rvlet") try { fileRef.upload(request); } catch (error:Error) { Alert.show("文件导入出错:"+error.toString()); return; } } private static function completeHandler(event:Event):void{ Alert.show("数据导入成功!"); } } } 服务器端代码:-------------------------------------------------- --------------------------------------------------- ------ package com.ysds.util; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.io.StringReader; import java.util.Iterator; import java.util.List; import java.util.StringTokenizer; 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.disk.DiskFileItemFac tory; import org.apache.commons.fileupload.servlet.ServletFileU pload; /*** * @Program Name : ysdstas.com.ysds.util.UploadServlet.java * @Written by : rentao * @Creation Date : 2011-3-31 下午07:12:14 * @version : v1.00 * @Description : 用于上传的Servle * * * * @ModificationHistory * Who When What * -------- ---------- ------------------------------------------------ * username 2011-3-31下午07:12:14 TODO * * ***/ public class UploadServlet extends HttpServlet { private String uploadPath = "D:\\"; private int MAXFILESIZE = 100 * 1024 * 1024 ; /** * The doGet method of the servlet.
* * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { uploadPath = "" ; uploadPath = request.getRealPath("upload") ; //设置request编码,主要是为了处理普通输入框中的中文问题 request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=UTF-8") ; PrintWriter out = response.getWriter() ; DiskFileItemFactory factory = new DiskFileItemFactory(); //设置上传文件大小的上限,-1表示无上限 factory.setSizeThreshold(-1); ServletFileUpload upload = new ServletFileUpload(factory); upload.setSizeMax(MAXFILESIZE); try { //上传文件,并解析出所有的表单字段,包括普通字段和文件字段 List fileItemsList = upload.parseRequest(request) ; //下面对每个字段进行处理,分普通字段和文件字段 Iterator iter = fileItemsList.iterator() ; Boolean flag = false ; while (iter.hasNext()) { FileItem fileItem = (FileItem)iter.next() ; if(!flag){ flag = true ; uploadPath = uploadPath + "\\" + new String(fileItem.getString().getBytes("ISO-8859-1") , "utf-8") ; uploadPath = UploadServlet.str_replace("\\", "\\\\", uploadPath); System.out.println(uploadPath+":uploadPath"); }else { flag = true ; } //如果是普通字段 if(!fileItem.isFormField()){ //获取文件名 new String(fileItem.getString().getBytes("ISO-8859-1") , "utf-8") File file = new File(uploadPath);//创建 System.out.println("getName:"+fileItem.getName()); System.out.println("file.exists:"+file.exists()); System.out.println(fileItem.getFieldName()+":"+new String(fileItem.getString().getBytes("ISO-8859-1") , "utf-8")); if (!file.exists()) { //如果文件或没有文件夹的存在则创建次路径为准的文件夹 file.getParentFile().mkdirs(); } try { //保存文件,其实就是把缓存里的数据写到目标路径下 fileItem.write(file) ; //保存文件到服务器硬盘 response.getWriter().write("上传成功"); } catch (Exception e) { e.printStackTrace(); } } // }else { // } } } catch (Exception e) { e.printStackTrace(); System.out.println(e.getMessage()); } } /** * The doPost method of the servlet.
* * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } //字符串替换的操作 public static String str_replace(String from,String to,String source) { StringBuffer bf= new StringBuffer(""); StringTokenizer st = new StringTokenizer(source,from,true); while (st.hasMoreTokens()) { String tmp = st.nextToken(); if(tmp.equals(from)) { bf.append(to); } else { bf.append(tmp); } } return bf.toString(); } } 
分享到:
评论

相关推荐

    flex多文件上传 asp.net实例

    flex多文件上传 asp.net实例 flex多文件上传 asp.net实例

    Flex+Java Servlet文件上传实例

    Flex+Java Servlet文件上传实例

    Flex实现的多文件上传实例

    Flex一种简单方式实现的多文件上传实例,仅供参考,如有建议,多多交流

    Flex+Java、PHP 批量上传实例文档

    Flex+Java、PHP 批量上传实例文档Flex+Java、PHP 批量上传实例文档Flex+Java、PHP 批量上传实例文档Flex+Java、PHP 批量上传实例文档Flex+Java、PHP 批量上传实例文档Flex+Java、PHP 批量上传实例文档Flex+Java、...

    flex+java文件上传完整实例

    非常完整,可以直接运行的,servlet都已配好,不成功的可以联系我哈

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

    Flash多文件上传组件(Flex版)实例 多文件上传组件应用实例

    swfupload多文件上传组件

    * 在文件上传的同时能够发送额外的POST数据 * 针对每一个文件上传发送POST/GET数据 * 更直观的事件回调 * 动态修改实例设置 * 接收服务端返回的数据 * 非取消形式的停止文件上传 * 自定义上传的顺序 * 支持...

    flex(flash)文件上传,完全仿网易邮箱,内含asp.net实例

    //uploadAction:处理上传文件的网页 //uploadParam:处理上传文件的网页所接收的参数 //ItemDate:单个文件大小控制,单位是字节 //TotalDate:一次上传的文件总大小控制,单位是字节 //TotalCount:一次上传文件的数量...

    FLEX企业应用开发实战.part1

    由于文件比较大,压缩成了两个文件上传。 第1章 Flex企业应用开发入门  1.1 B/S企业应用开发者的噩梦  1.2 噩梦结束,新时代来临  1.3 Flex概述  1.4 Flash Player的工作模型  1.4.1 Flash Player的帧...

    FLEX企业应用开发实战.part2

    由于文件比较大,所以压缩成了两个文件上传。 第1章 Flex企业应用开发入门  1.1 B/S企业应用开发者的噩梦  1.2 噩梦结束,新时代来临  1.3 Flex概述  1.4 Flash Player的工作模型  1.4.1 Flash Player的...

    Flex学习大礼包(flex基础教程、flex和java整合)--下载不扣分,童叟无欺

    第24章 文件的上传下载.ppt 第25章 Mp3播放器.ppt 第26章 用户登录.ppt 第27章 电子相册.ppt 第28章 浏览FTP.ppt 第29章 FLV播放器.ppt 第30章 留言板.ppt 第31章 在线书店系统.ppt ├─Flex与JAVA │ ...

    flex3的cookbook书籍完整版dpf(包含目录)

    flex3的cookbook书籍完整版dpf(包含目录),目录是我花了两个多小时自己整理的,希望对大家有帮助。 目录: 第一章.Flex与ActionScript基础(3) 1.1节.用FlexBuilder创建Flex项目 1.2节.用FlexBuilder创建Flex库项目 ...

    JAVA 五年的工作经验和学习笔记

    这里需要说明的时,该文档是本人5年工作经验的积累,文档中大部分知识点来源于实际工作中的总结,(除了JAR等资源文件外)其代码都是可运行的,还有一部分知识来源于网络或者其他书籍,这里做一些收集,使该体系更加...

    ios-MobileProject.zip

    MobileProject项目是一个以MVC模式搭建的开源...因为源代码文件比较大,无法直接上传,已开源到github(https://github.com/wujunyang/MobileProject),如果你有时间可以一起完善,当然要是感觉有帮助也可以加个星哈

    asp.net知识库

    关于能自定义格式的、支持多语言的、支持多数据库的代码生成器的想法 发布Oracle存储过程包c#代码生成工具(CodeRobot) New Folder XCodeFactory3.0完全攻略--序 XCodeFactory3.0完全攻略--基本思想 XCodeFactory...

    VMware Workstation Pro 12.0.0 Build 2985596 - 64bit [ENG] [Serial]

    链接克隆将会制作一个与父虚拟机共享虚拟磁盘的虚拟机副本,这样做的好处是所占磁盘空间比完整克隆少得多。 vmw-scrnsht-wrkstn-vmcloning-tn.jpg vmw-scrnsht-wrkstn-restrictedvm-tn.jpg 运行受限虚拟机 创建和...

Global site tag (gtag.js) - Google Analytics