在开发框架中使用FTP辅助类上传或者下载文件,方便管理附件内容

在有些系统应用里面,我们需要对应用服务器、数据库服务器、文件服务器进行分开,文件路径等信息存储在数据库服务器里面,但文件内容则存储在文件服务器里面,通过使用FTP进行文件的上传下载,从而实现更加高效的IO输出,也分担了服务器的压力。本篇随笔介绍使用公用类库里面的FTPHelper辅助类,实现文件的上传下载等基础操作。

1、FTPHelper辅助类的接口说明

首先我们为了方便辅助类的使用,使用了构造函数进行对象的参数初始化,如下所示。


在开发框架中使用FTP辅助类上传或者下载文件,方便管理附件内容_第1张图片

我们整个FTPHelper辅助类,是使用FTP命令和FTP服务器进行交换,因此需要如果要获取文件或目录信息,那么就需要对这些信息进行转换为合适格式的内容,这里我们定义一个结构体用来承载这些信息。


在开发框架中使用FTP辅助类上传或者下载文件,方便管理附件内容_第2张图片

这样我们可以顺利把FTP服务器的字符串返回(DOS格式或者Unix格式字符串)它们转换为对应的结构体,方便使用了。
在开发框架中使用FTP辅助类上传或者下载文件,方便管理附件内容_第3张图片

整个辅助函数,提供了一些基础的函数来操作FTP文件或者目录,如下所示

/// 
/// 仅获取文件列表
/// 
/// 获取的文件列表
public List ListFiles()

/// 
/// 仅获取目录列表
/// 
/// 获取到的目录列表
public List ListDirectories()  

以及

/// 
/// 关闭FTP服务器的所有连接
/// 
public void Disconnect()

/// 
/// 连接到FTP服务器
/// 
/// FTP服务器的IP或者主机名
/// FTP服务器端口
/// 登录用户名
/// 登录密码
public void Connect(string server, int port, string user, string pass)        

/// 
/// 获取FTP的当前工作目录
/// 
public string GetWorkingDirectory()        

/// 
/// 在FTP服务器上改变目录
/// 
public void ChangeDir(string path)        

/// 
/// 在FTP服务器上创建新的目录
/// 
public void MakeDir(string dir)        

/// 
/// 在FTP服务器上移除目录
/// 
public void RemoveDir(string dir)    

/// 
/// 在FTP上移除一个文件
/// 
public void RemoveFile(string filename)        

/// 
/// 在FTP服务器上重命名一个文件
/// 
/// 旧文件名
/// 新文件名
public void RenameFile(string oldfilename, string newfilename)

/// 
/// 打开一个存在的文件(支持续传)上传
/// 
/// 本地上传的文件(包含文件路径)
/// 存储在FTP上的文件名称
/// 如果存在,指定是否续传
public void OpenUpload(string filename, string remote_filename, bool resume)

/// 
/// 打开下载一个文件
/// 
/// FTP上的远端文件名
/// 另存为的文件名称(包含文件路径)
/// 如果存在,指定是否续传
public void OpenDownload(string remote_filename, string local_filename, bool resume)    

/// 
/// 上传文件,循环操作直到文件全部上传完毕
/// 
/// 发送的字节数组大小
public long DoUpload()

/// 
/// 下载文件,循环操作直到文件全部下载完毕
/// 
/// 收到的字节数组大小
public long DoDownload()

2、FTPHelper辅助类的使用

基于上述的接口,我们编写了一个使用Demo,主要用来介绍这个辅助类的各种接口使用。

在开发框架中使用FTP辅助类上传或者下载文件,方便管理附件内容_第4张图片

获取到的测试结果输出如下所示
在开发框架中使用FTP辅助类上传或者下载文件,方便管理附件内容_第5张图片

虽然我们在附件管理里面采用了更为通用的《附件管理模块》,统一上传文件到服务器上进行管理,并提供下载管理等内容。
《 Winform开发框架之附件管理应用》
其他公用类库的使用说明,具体可以参考文章《 公用类库使用帮助》
不过我们开发的时候,为了方便,也可以使用 FTPHelper辅助类进行简单的文件上传下载操作。

你可能感兴趣的:(在开发框架中使用FTP辅助类上传或者下载文件,方便管理附件内容)