flex前端代码:

<?xml version="1.0" encoding="utf-8"?>
<s:BorderContainer xmlns:fx="http://ns.adobe.com/mxml/2009"
   xmlns:s="library://ns.adobe.com/flex/spark"
    xmlns:mx="library://ns.adobe.com/flex/mx"
    width="100%" height="100%" xmlns:component="com.boco.mis.nwcfgdm.component.*"
    creationComplete="init()">

<fx:Script>
<![CDATA[

    import com.adobe.net.URI;

    private var file: FileReference;

    private function init(): void{
        Security.allowDomain("*");
        file = new FileReference();
        file.addEventListener(ProgressEvent.PROGRESS, onProgress);
        file.addEventListener(Event.SELECT, onSelect);
    }

    private function upload(): void{
        file.browse();
    }
    private function onSelect(e: Event): void{
        Alert.show("上传 " + file.name + " (共 "+Math.round(file.size)+" 字节)?",
        "确认上传",
        Alert.YES|Alert.NO,
        null,
        proceedWithUpload);
    }

    private function proceedWithUpload(e: CloseEvent): void{
        if (e.detail == Alert.YES){
      //采用http向后台发送请求
        var uri:URI = new URI(Application.application.url);

        //获得服务端的ip
        var authority:String = uri.authority;

        //获得服务端的端口号

        var port:String = uri.port;
        var request: URLRequest = new URLRequest("http://"+authority+":"+port+"/nwcfgdm/fileUploadServlet");
        try {
          file.upload(request);
        } catch (error:Error) {
          trace("上传失败");
        }

    }
}
//显示进度条
      private function onProgress(e: ProgressEvent): void
      {
        var u:Upload = Upload(PopUpManager.createPopUp(this.parentApplication.parent,Upload,true));
        PopUpManager.centerPopUp(u);
        var proc: uint = e.bytesLoaded / e.bytesTotal * 100;
        u.bar.setProgress(proc, 100);
        u.bar.label= "当前进度: " + " " + proc + "%";
        if(proc == 100){
          u.lbProgress.text="上传完成,正在导入数据...";
          var importDateEvt:ImportDataEvent = new ImportDataEvent();
          CairngormEventDispatcher.getInstance().dispatchEvent(importDateEvt);
        }
}

java代码部分:(是一个servelt)

  

public class FileUploadServlet extends HttpServlet {

  //这里我采用log的形式记录异常信息

    private static final Logger log = LoggerFactory
    .getLogger(NwcfgdmService.class);

    //自定义路径,盘符建议用

     private String uploadPath ="D:"+File.separator+"opt"+File.separator+"BOCO"+File.separator ";

    private static final long serialVersionUID = 1L;

    private int maxPostSize = 100 * 1024 * 1024;

    public FileUploadServlet() {
      super();
    }

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

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

       //防止标题中还有中文字符是出现乱码
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html; charset=UTF-8");
        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 ));
          }
          catch (Exception e)
          {
            e.printStackTrace();
            log.error("书写文件出现异常",e);
          }
        }
      }
    }
      catch (FileUploadException e)
    {
      e.printStackTrace();
      log.error("上传文件出现异常",e);

    }
}

      public void doPost(HttpServletRequest request, HttpServletResponse response)
              throws ServletException, IOException {
        doGet(request, response);
       }

      public void init() throws ServletException {
        // Put your code here
      }

}

web.xml中的配置:

<servlet>
  <servlet-name>FileUploadServlet</servlet-name>
  <servlet-class>nwcfgdm.FileUploadServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>FileUploadServlet</servlet-name>
  <url-pattern>/fileUploadServlet</url-pattern>
</servlet-mapping>

flex+java实现文件的上传的更多相关文章

  1. java客户端文件的上传和下载

    java客户端文件的上传和下载 //上传 public JTable upload(String id){ JTable table=new JTable(); System.out.println( ...

  2. Java WEB ----- 文件的上传

    最近学到的web阶段的文件的上传,就想记录一下,帮助自己复习以及帮助大家学习,一般我都会把上传的文件存到服务器中的web-inf 下面,因为这样用户不会直接访问到,我们存到数据库的一般都是路径.这里没 ...

  3. java实现文件的上传和下载

    1. servlet 如何实现文件的上传和下载? 1.1上传文件 参考自:http://blog.csdn.net/hzc543806053/article/details/7524491 通过前台选 ...

  4. java实现文件的上传与下载

    (一)文件的上传:在这一部分,我要将execl文件的内容上传到数据库中,完成这一功能.需要分为两步: 1:将文件上传到tomcat下 文件格式如下: 2:读取execl表中的内容到数据库中 首先:下载 ...

  5. Java中文件的上传与下载

    文件的上传与下载主要用到两种方法: 1.方法一:commons-fileupload.jar  commons-io.jar apache的commons-fileupload实现文件上传,下载 [u ...

  6. java大文件分块上传断点续传demo

    第一点:Java代码实现文件上传 FormFile file = manform.getFile(); String newfileName = null; String newpathname =  ...

  7. java实现文件夹上传

    文件上传下载,与传统的方式不同,这里能够上传和下载10G以上的文件.而且支持断点续传. 通常情况下,我们在网站上面下载的时候都是单个文件下载,但是在实际的业务场景中,我们经常会遇到客户需要批量下载的场 ...

  8. Java多级文件夹上传

    javaweb上传文件 上传文件的jsp中的部分 上传文件同样可以使用form表单向后端发请求,也可以使用 ajax向后端发请求 1.通过form表单向后端发送请求 <form id=" ...

  9. Java实现文件的上传下载(含源代码和jar包)

    1.需要使用的jar包 链接:https://pan.baidu.com/s/1IaxQRSwfzxDpe4w4JiaEKw 提取码:xwtz 2.如果想实现文件的下载,需要创建一张表,表的结构为 i ...

随机推荐

  1. visual studio 插件开发

    插件的定义 所谓插件,就是根据平台接口开发的第三方程序.第一次听到这个名词很是不了解,听了解释也不是很明白,那我们来举个例子,比如说一辆房车,现在里面只有基本的一些设施,但是你现在想在顶部有一个晒太阳 ...

  2. MYSQL 日期函数【转】

    MySQL日期时间函数大全 DAYOFWEEK(date) 返回日期date是星期几(=星期六,ODBC标准) mysql> select DAYOFWEEK('1998-02-03'); WE ...

  3. XPATH 带命名空间数据的读取

    在XML中,很多情况下有命名空间,如果直接使用XPATH 读取是会读到空节点. 解决办法如下: InputStream is=loader.getResourceAsStream("com/ ...

  4. FZU 2029 买票问题 树状数组+STL

    题目链接:买票问题 思路:优先队列维护忍耐度最低的人在队首,leave操作ok. vis数组记录从1到n的编号的人们是不是在队列中,top维护队首的人的编号.pop操作搞定. 然后,check操作就是 ...

  5. android 启动时的短暂黑屏解决

    http://blog.csdn.net/lonely_fireworks/article/details/22291835 http://www.cnblogs.com/henanjing/arch ...

  6. hdu 4611 Balls Rearrangement

    http://acm.hdu.edu.cn/showproblem.php?pid=4611 从A中向B中移动和从B中向A中移动的效果是一样的,我们假设从B中向A中移动 而且A>B 我们先求出所 ...

  7. SuperGridControl 使用小技巧

    1.显示行号 superGridControl1.PrimaryGrid.ShowRowGridIndex = true; 2.允许调整行头的宽度 superGridControl1.PrimaryG ...

  8. libpng交叉编译安装

    tar xzf libpng-1.5.22.tar.gz cd libpng-1.5.22 mkdir tmp 打开Makefile文件并修改CC=arm-linux-gcc ./configure ...

  9. LA 5061 LCA tarjan 算法

    题目大意: 给定所有点的权值都为0,给定一棵树以后,每次询问都要求给定两点 x , y 和一个权值w,要求x,y路径上所有点权值加上w,最后求出每一个节点的值 这里因为查询和点都特别多,所以希望能最后 ...

  10. CSS引入外部字体

    @font-face {    font-family: '综艺体';    font-style: normal;    font-weight: normal;    src: url(../cs ...