`

Flex FTP文件上传

阅读更多

 Flex FTP文件上传原理就是利用Flex Socket组件与FTP服务器进行网络通讯并根据FTP协议进行指令发生、接收,数据的传输和接收。本文指的是Flex web应用的FTP文件上传,具体实现有下述3个工作:

    1)上传文件选择、加载,可以使用FlexFileRefrence组件;

    2socket创建、连接、ftp用户登录信息的验证;

    3)文件数据发送;

       先假设要上传的文件名称为:demo.doc, 该上传的文件内容为fileData,下述为FTP文件上传的核心类。

 

package fileupload

{

    import flash.events.Event;

    import flash.events.IEventDispatcher;

    import flash.events.IOErrorEvent;

    import flash.events.ProgressEvent;

    import flash.events.SecurityErrorEvent;

    import flash.net.FileReference;

    import flash.net.Socket;

    import flash.utils.ByteArray;

    import flash.utils.clearInterval;

    import flash.utils.setInterval;

 

    public class FtpFileUpDownload

    {

       private var ftpSocket:Socket;

       private var ftpResponce:String;

       private var dataSocket:Socket;

       private var dataResponse:String;

       private var clientIP:String;

       private var clientPort:uint;

       private var canceled:Boolean = false;

       private var dispatcher:IEventDispatcher;

       private var fileName:String;

       private var fileData:ByteArray;

       private var _isAnonymous:Boolean = false;

       private var _userName:String;

       private var _serverIP:String;

       private var _userPwd:String;

       private var _userDir:String;

       private var _serverPort:uint = 21;

       private var intervalID:int;

       //

       public function FtpFileUpDownload(dispatcher:IEventDispatcher)

       {

           this.dispatcher = dispatcher;

       }

 

       /**

        * isAnonymous, FTP 是否允许 匿名访问,默认为false

        */

       public function get isAnonymous():Boolean{

           return _isAnonymous;

       }

       public function set isAnonymous(value:Boolean):void{

           _isAnonymous = value;

       }

      

       public function get userName():String{

           return _userName;

       }

       public function set userName(value:String):void{

           _userName = value;

       }

      

       public function get serverIP():String{

           return _serverIP;

       }

       public function set serverIP(value:String):void{

           _serverIP = value;

       }

      

       public function get userPwd():String{

           return _userPwd;

       }

       public function set userPwd(value:String):void{

           _userPwd = value;

       }

      

       /**

        * userDir, FTP 用户上传目录

        */

       public function get userDir():String{

           return _userDir;

       }

       public function set userDir(value:String):void{

           _userDir = value;

       }

      

       public function get serverPort():uint{

           return _serverPort;

       }

       public function set serverPort(value:uint):void{

           _serverPort = value;

       }

      

       /**

        * upload file, data is null is not allowed.

        */

       public function upload(data:ByteArray, fileName:String):void{

           this.fileName = fileName;

           this.fileData = data;

           if(data==null){

              dispatcher.dispatchEvent(new FileUpDownloadEvent(FileUpDownloadEvent.ERROR,"Data is null is not allowed!"));

              return;

           }

           if(!check()) return;

           connect();

       }

      

       private function check():Boolean{

           var blnResult:Boolean = true;

           if(!isAnonymous){

              if(StringUtil.isEmpty(userName) || StringUtil.isEmpty(userPwd)){//

                  dispatcher.dispatchEvent(new FileUpDownloadEvent(FileUpDownloadEvent.ERROR,

                     "请输入用户名和口令!"));

                  blnResult = false;

              }

           }

           if(StringUtil.isEmpty(serverIP)){

              dispatcher.dispatchEvent(new FileUpDownloadEvent(FileUpDownloadEvent.ERROR,

                  "请输入FTP服务器IP地址!"));

              blnResult = false;

           }

           return blnResult;

       }

      

       private function connect():void{

           ftpSocket = new Socket(serverIP, serverPort);

           ftpSocket.addEventListener(ProgressEvent.SOCKET_DATA, ftpSocketDataHandle);      ftpSocket.addEventListener(SecurityErrorEvent.SECURITY_ERROR,ftpSocketSecurityErrorHandle);

    ftpSocket.addEventListener(IOErrorEvent.IO_ERROR,ftpIOErrorHandle);

       }

      

       private function ftpIOErrorHandle(evt:IOErrorEvent):void {

           dispatcher.dispatchEvent(new FileUpDownloadEvent(FileUpDownloadEvent.ERROR,evt.text));

       }

text-align: left; line-height:

分享到:
评论

相关推荐

    Flex实现Ftp上传

    在本话题中,我们将详细探讨如何使用Flex来实现FTP文件上传功能,这是一个在Web应用中常见的需求,特别是对于那些需要用户上传文件至服务器的应用。 FTP(File Transfer Protocol)是一种用于在网络上进行文件传输...

    flex web ftp上传. 点对点方式 . 支持多文件上传 现打包发布

    标题中的“flex web ftp上传”指的是使用Adobe Flex技术构建的Web应用程序,该程序允许用户通过FTP(文件传输协议)进行文件上传。Flex是一种基于ActionScript的开放源代码框架,用于创建交互式的、运行在浏览器上的...

    flex多文件上传控件(flex源码)

    在Flex中,文件上传通常涉及到FileReference类,该类允许用户选择本地文件,并通过HTTP或FTP上传。开发者可能需要编写事件监听器来处理选择文件、开始上传、上传进度和完成上传等事件。 在使用这个Flex多文件上传...

    Flex上传文件与下载

    Flex和Servlet结合使用,文件上传、下载

    flex的ftp操作

    6. **文件上传**:`put()`方法用于将本地文件上传到FTP服务器。需要指定本地文件路径和远程目标路径。 7. **文件下载**:`get()`方法用于从FTP服务器下载文件,需要指定远程文件路径和本地保存位置。 8. **错误...

    tt.rar_FLEX FTP_flex

    总的来说,“tt.rar_FLEX FTP_flex”涉及了Flex开发中的重要概念,包括使用Flex构建UI、实现FTP文件传输以及展示不同类型的文件。通过学习和理解这些知识点,开发者能够创建出功能丰富的Web应用程序,实现用户友好的...

    Flex图片上传实例

    edtftpj.jar是一个Java FTP客户端库,用于将文件上传到FTP服务器。而commons-fileupload-1.2.1.jar是Apache Commons FileUpload库的一个版本,它提供了处理HTTP多部分表单数据的能力,这是上传文件时常见的格式。 ...

    flex中的文件上传(简单例子)

    // 定义文件的上传路径 private String uploadPath = "G://upload/"; // 限制文件的上传大小 private int maxPostSize = 100 * 1024 * 1024; public FileUploadServlet() { super(); } public void ...

    ASP.NET源码——[上传下载]Asp.net + Flex实现网络硬盘.zip

    【ASP.NET 源码分析——...综上所述,这个项目结合了ASP.NET的后端处理能力和Flex的前端表现力,为用户提供了完整的文件上传下载解决方案。开发者可以通过学习和研究这个源码,深入理解Web应用开发中的关键技术和实践。

    Flex教程 ppt格式 简单实用

    数据管理.ppt第21章 XML的处理.ppt第22章 Flex应用程序开发.ppt第23章 Flex应用程序部署.ppt第24章 文件的上传下载.ppt第25章 Mp3播放器.ppt第26章 用户登录.ppt第27章 电子相册.ppt第28章 浏览FTP.ppt第29章 FLV...

    flexUPload.rar

    在Flex中,开发者可以利用Flash Player的本地文件系统访问权限来实现文件选取,并通过HTTP或FTP服务进行文件上传。 标签“源码”表明这个压缩包内含的是源代码文件,这意味着你可以查看和修改代码以适应自己的项目...

    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 │ ...

    AIRFtp类库

    2. 文件上传:通过FTP类库,开发者可以将本地文件上传到FTP服务器。这通常涉及选择文件、指定目标路径以及处理上传进度和错误。 3. 文件下载:同样,类库会提供下载文件的功能,包括设定保存路径、开始下载、跟踪...

    FlexFTP实例源码

    在这个实例中,开发者通过Flex3构建了一个用户界面,允许用户连接到FTP服务器,进行上传、下载、列出目录、删除文件等操作。源码中可能包含了以下关键知识点: 1. **Flex组件库**:Flex提供了丰富的组件库,如...

    Flex教程.rar

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

    air 断续续传

    在IT行业中,断点续传是一项非常实用的技术,特别是在大文件传输时,它能有效解决网络中断或传输错误的问题。本项目聚焦于Adobe AIR平台,它是一个跨平台的应用开发框架,允许开发者创建桌面应用程序,利用Flash ...

    flex完全自学手册 电子教案(PPT)

    2008-07-10 10:54 169472 65848 第24章 文件的上传下载.ppt 2008-07-10 10:57 137728 86032 第25章 Mp3播放器.ppt 2008-07-10 11:00 116736 66591 第26章 用户登录.ppt 2008-07-10 11:02 285184 245454 第27章 电子...

Global site tag (gtag.js) - Google Analytics