flex实现上传与下载

来源:互联网 发布:html编程工具 编辑:程序博客网 时间:2024/05/01 21:04

        和传统的JSP一样,在flex中,有的时候也需要实现文件上传和下载的功能,但是在flex里文件的上传和下载的实现相
对来说比较复杂,如何实现,请看下面。

      由于flex是一个比较新的技术,在研究的时候,还是按着JSP的方式去尝试,在开始之初,主要有以下几种思路:

  A、利用ftp的方式进行文件的上传和下载,需要利用flex的socket接口。

  B、利用webService的方式来进行文件的上传和下载

  C、利用flex+sevlet+fileupload组件实现文件的上传和下载。

      我主要是采用第三种方法,但是没有采用fileupload,而是使用了com.oreilly.servlet.multipart。

主要分为flex端和jsp段。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="687" height="587" xmlns:local='*'  fontSize="14" backgroundImage="@Embed(source='../images/dark_nite.jpg')" cornerRadius="2" borderStyle="inset">
 <mx:TabNavigator left="155" right="125" top="102" bottom="141">
      <local:uploadFile id="up" label="上传文件">
      </local:uploadFile>
      <local:download id="down" label="下载文件" height="309" width="402">
      </local:download>
 </mx:TabNavigator>
</mx:Application>

jsp共有3个,分别是uploadfile,download与list。其中主要部分代码:

<%
        try
        {
            MultipartRequest multi= new MultipartRequest(request,
            "E://apache-tomcat-6.0.18(1)//apache-tomcat-6.0.18//webapps//Flex
space",
            10*1024*1024,"ISO-8859-1",new DefaultFileRenamePolicy());
            out.println("PARAMS:");
            Enumeration params=multi.getFileNames();
            while(params.hasMoreElements())
           

{               String name=(String)params.nextElement();               String value=multi.getParameter(name);               out.println(name+"="+value);             }


            out.println();
            out.println("FILES:");
            Enumeration files=multi.getFileNames();
            while(files.hasMoreElements())
            {
                String name=(String)files.nextElement();
                String filename=multi.getFilesystemName(name);
                String originalFilename=multi.getOriginalFileName(name);
                String type=multi.getContentType(name);
                File f=multi.getFile(name);
                out.println("name"+name);
                out.println("filename"+filename);
                out.println("originalFilename"+originalFilename);
                out.println("type"+type);
                if(f!=null)
               

{                    out.println("f.toString():"+f.toString());                    out.println("f.getname():"+f.getName());                    out.println("f.exists():"+f.exists());                    out.println("f.length()"+f.length());                 }


                out.println();
            }
        }
        catch(IOException IEx)
       

{             this.getServletContext().log(IEx,"erro reading or saving file");         }


      %>

 

最终效果如图所示:

 

原创粉丝点击