客户端代码: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/UploadServlet") 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.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; /*** * @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. <br> * * 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. <br> * * 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(); } }

转载于:https://www.cnblogs.com/JPAORM/archive/2011/03/31/2509821.html

完整的Flex多文件上传实例相关推荐

  1. flex java 上传下载_完整的Flex多文件上传实例

    客户端代码:fileUpload.xml-------------------------------------------------------------------------------- ...

  2. php文件上传详解,PHP文件上传实例详解!!!

    这篇文章主要介绍了PHP文件上传实例代码,需要的朋友可以参考下 首先来看下上传部分的表单代码: 文件:  这里有几个要注意的地方,首先看这句 ,这里我们采用POST方法,个别浏览器还支持PUT方法,当 ...

  3. java 图片上传_java web图片上传和文件上传实例

    本篇文章主要介绍了java web图片上传和文件上传实例,具有一定的参考价值,有需要的可以了解一下. 图片上传和文件上传本质上是一样的,图片本身也是文件.文件上传就是将图片上传到服务器,方式虽然有很多 ...

  4. php中file对象实例,AJAX_File, FileReader 和 Ajax 文件上传实例分析(php),File FileReader 可以干什么? Ajax - phpStudy...

    File, FileReader 和 Ajax 文件上传实例分析(php) File FileReader 可以干什么?Ajax文件上传例子 FileReader 对象可以读取文件的 Base64编码 ...

  5. SpringBoot+Mysql+MDUI实现数据的增删改查和列表操作及单,多文件上传实例

    SpringBoot+Mysql+MDUI实现数据的增删改查和列表操作及单,多文件上传实例 开源地址:https://gitee.com/jfkjrym/demo.git evan原创内容!evan原 ...

  6. 用Python+Mysql+MDUI实现的数据库增删改查列表操作及单,多文件上传实例

    用Python+Mysql+MDUI实现的数据库增删改查列表操作及单,多文件上传实例.web服务用flask框架,数据库操作用的pymysql框架.教程在我B站有的. 开源地址:https://git ...

  7. php单文件上传实例,php封装的单文件(图片)上传类完整实例

    本文实例讲述了php封装的单文件(图片)上传类.分享给大家供大家参考,具体如下: //封装php中的单文件(图片)上传类 /* //参数1:$file 文件数组 5个属性值 name,type,siz ...

  8. struts2框架单文件、多文件上传实例详解

    版权声明:本文为博主原创文章,如需转载,请标明出处. https://blog.csdn.net/alan_liuyue/article/details/79390681 简介 1.上一篇博客讲解了J ...

  9. filereader php,AJAX_File, FileReader 和 Ajax 文件上传实例分析(php),File FileReader 可以干什么? Ajax...

    File FileReader 可以干什么?Ajax文件上传例子 FileReader 对象可以读取文件的 Base64编码数据(readAsDataURL),2进制字符串(readAsBinaryS ...

最新文章

  1. 用户家目录下的隐藏文件
  2. 疫情严重!国内互联网公司上班时间汇总!
  3. office365加速解决方案
  4. OSGi入门篇:模块层
  5. 他在 B 站有 178 万粉丝,今天免费带你玩转 Python
  6. 如何实现一个符合泊松分布的即时消息发生器?
  7. Drupal 自己定义主题实体 Theming Custom Entities
  8. ANSI C、ISO C、Standard C联系与区别
  9. oceanbase mysql模式安装了obproxy之后的连接方法
  10. 怎么windows升级?windows版本升级?
  11. java xml 字符串转对象_java读取xml文件并转换成对象,并进行修改
  12. cocos bubbles_像Messenger Bubbles这样的Android浮动小部件
  13. 【转载】Chrome team 发起了浏览器兼容性检测工具开源项目
  14. java jni so_java 用jni调用so全过程
  15. Net share 命令详解
  16. 用mysql建销售订单主表_mysql订单表如何设计?
  17. ★一人一首成名歌曲★
  18. 数据运营-数据管理平台
  19. Docker学习--修改阿里云镜像
  20. 不看绝对血亏!docker镜像下载不下来

热门文章

  1. Scalable Web Architectures: Common Patterns and Approaches
  2. 如何让web控件FileUpload选择完文件之后就自动触发事件,让Image控件显示出图片来...
  3. 那年学过的web后端笔记
  4. 期货一个价格变动对应价值变化
  5. 实时数据导入kafka_实时数据仓库必备技术:Kafka知识梳理
  6. 如何用2分钟做出一张拥有“黑洞”和“脑洞”的热力地图?
  7. FISSA:融合项目相似度模型和自注意网络的时序推荐
  8. 如何避免_小红书如何避免降权!
  9. 《计算机组成原理》数据传送类指令不包括( ),兰大《计算机组成原理》20秋平时作业1【标准答案】...
  10. 深度相机_深度相机(TOF)的工作原理