`
isiqi
  • 浏览: 16076387 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论
阅读更多

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));

}

private function ftpSocketSecurityErrorHandle(evt:SecurityErrorEvent):void {

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

<

分享到:
评论

相关推荐

    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