完整的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(); } }
发表评论
-
TC官方文档翻译03----可扩充字符串API(Tokyo Cabinet/Tokyo Tyarnt 文档系列)
2012-07-06 09:52 581/** * 转载请注明出处, 由于个人技术能力有限, 英 ... -
初见C#之欣喜 -- 有关正则和LINQ
2012-07-06 09:46 854这两天由于作业的原因用C#写了个小程序,苦恼于陌生的函数、 ... -
各种视图组件
2012-07-03 13:44 730TabHost包含: 布局器: 上边:一个TabW ... -
给FlexViewer加一个登录
2012-07-02 12:56 637打开index.mxml,修改如下: flex/sp ... -
[Bindable]元数据标签举例
2012-07-02 12:56 664【描述】 现在想从后台的数据库里读取一些Produc ... -
学习组件拖拽
2012-07-02 12:56 712height="323" ... -
Using the Adobe AIR 2 NativeProcess API to create a screen recorder
2012-07-02 12:56 1349With the release of AIR 2, Ad ... -
ExtJs 扩展 笔录1
2012-07-02 12:56 608Ext.layout.SlideLayout.js Ext ... -
整理电脑,整理大脑
2012-07-01 10:31 749电脑硬盘空间不足了,该怎么办呢? 增加硬盘空间,我真 ... -
Android 源码下载编译
2012-07-01 10:31 815很久以前写的,从那个博客搬过来的。 … 一、系 ... -
开发知识总结
2012-07-01 10:31 750总结一下自己在开发上的一些小心得,持续更新,欢迎大家补充! ... -
像Youtube一样的flv视频网站制作 使用Flex和PHP创建自己的视频应用
2012-07-01 10:31 752转帖:http://blog.sina ... -
2011年11月01日
2012-06-30 16:52 9882011年11月01日 2011年11月 ... -
[转]Q版格斗游戏《口袋战士NOVA》开发心得[原创]
2012-06-30 16:52 891[转]Q版格斗游戏《口袋战士NOVA》开发心得[原创] 20 ... -
本创:如何才气建制出劣秀的Facebook游戏?
2012-06-30 16:52 806本创:如何才气建制出劣 ... -
中国网络游戏发展历史大全 .网络游戏
2012-06-30 16:52 682中国网络游戏发展历史大全 .网络游戏 2011年07月14日 ...
相关推荐
flex多文件上传 asp.net实例 flex多文件上传 asp.net实例
Flex+Java Servlet文件上传实例
Flex一种简单方式实现的多文件上传实例,仅供参考,如有建议,多多交流
Flex+Java、PHP 批量上传实例文档Flex+Java、PHP 批量上传实例文档Flex+Java、PHP 批量上传实例文档Flex+Java、PHP 批量上传实例文档Flex+Java、PHP 批量上传实例文档Flex+Java、PHP 批量上传实例文档Flex+Java、...
非常完整,可以直接运行的,servlet都已配好,不成功的可以联系我哈
Flash多文件上传组件(Flex版)实例 多文件上传组件应用实例
* 在文件上传的同时能够发送额外的POST数据 * 针对每一个文件上传发送POST/GET数据 * 更直观的事件回调 * 动态修改实例设置 * 接收服务端返回的数据 * 非取消形式的停止文件上传 * 自定义上传的顺序 * 支持...
//uploadAction:处理上传文件的网页 //uploadParam:处理上传文件的网页所接收的参数 //ItemDate:单个文件大小控制,单位是字节 //TotalDate:一次上传的文件总大小控制,单位是字节 //TotalCount:一次上传文件的数量...
由于文件比较大,压缩成了两个文件上传。 第1章 Flex企业应用开发入门 1.1 B/S企业应用开发者的噩梦 1.2 噩梦结束,新时代来临 1.3 Flex概述 1.4 Flash Player的工作模型 1.4.1 Flash Player的帧...
由于文件比较大,所以压缩成了两个文件上传。 第1章 Flex企业应用开发入门 1.1 B/S企业应用开发者的噩梦 1.2 噩梦结束,新时代来临 1.3 Flex概述 1.4 Flash Player的工作模型 1.4.1 Flash Player的...
第24章 文件的上传下载.ppt 第25章 Mp3播放器.ppt 第26章 用户登录.ppt 第27章 电子相册.ppt 第28章 浏览FTP.ppt 第29章 FLV播放器.ppt 第30章 留言板.ppt 第31章 在线书店系统.ppt ├─Flex与JAVA │ ...
flex3的cookbook书籍完整版dpf(包含目录),目录是我花了两个多小时自己整理的,希望对大家有帮助。 目录: 第一章.Flex与ActionScript基础(3) 1.1节.用FlexBuilder创建Flex项目 1.2节.用FlexBuilder创建Flex库项目 ...
这里需要说明的时,该文档是本人5年工作经验的积累,文档中大部分知识点来源于实际工作中的总结,(除了JAR等资源文件外)其代码都是可运行的,还有一部分知识来源于网络或者其他书籍,这里做一些收集,使该体系更加...
MobileProject项目是一个以MVC模式搭建的开源...因为源代码文件比较大,无法直接上传,已开源到github(https://github.com/wujunyang/MobileProject),如果你有时间可以一起完善,当然要是感觉有帮助也可以加个星哈
关于能自定义格式的、支持多语言的、支持多数据库的代码生成器的想法 发布Oracle存储过程包c#代码生成工具(CodeRobot) New Folder XCodeFactory3.0完全攻略--序 XCodeFactory3.0完全攻略--基本思想 XCodeFactory...
链接克隆将会制作一个与父虚拟机共享虚拟磁盘的虚拟机副本,这样做的好处是所占磁盘空间比完整克隆少得多。 vmw-scrnsht-wrkstn-vmcloning-tn.jpg vmw-scrnsht-wrkstn-restrictedvm-tn.jpg 运行受限虚拟机 创建和...