`

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上传文件,无需后台语言支持

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

    NULL 博文链接:https://xieronghua246.iteye.com/blog/907395

    Flex上传文件与下载

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

    tt.rar_FLEX FTP_flex

    flex选择文件,包括上传 ,显示,ftp

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

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

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

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

    Flex教程.rar

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

    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章 电子...

    speedcommander13含注册码.rar

    SpeedCommander 是一个非常容易使用的文件管理工具!内置两个操作窗口,可以非常容易的对文件进行排序,删除,复制,移动等操作!...内置FTP客户端,支持同时上传和下载数据!整合网络浏览工具!可以直接上网冲浪! 内含注册码!

    speed commander 14 含注册码

    SpeedCommander 是一个非常容易使用的文件管理工具!内置两个操作窗口,可以非常容易的对文件进行排序,删除,...内置FTP客户端,支持同时上传和下载数据!整合网络浏览工具!可以直接上网冲浪! 含注册码! 价值39欧元!!

    中诺企业网站系统 2.0

    1、使用ftp软件上传Upload文件内的所有内容到网站空间 2、将空间的.net版本切换到.net3.5 3、设置空间目录读写权限为:读取与执行、写入,并给予NETWORK SERVICE用户权限 4、修改默认首页设置为:index.htm ...

    asp.net知识库

    帮助解决网页和JS文件中的中文编码问题的小工具 慎用const关键字 装箱,拆箱以及反射 动态调用对象的属性和方法——性能和灵活性兼备的方法 消除由try/catch语句带来的warning 微软的应试题完整版(附答案) 一个...

Global site tag (gtag.js) - Google Analytics