第8章-FTP文件上传下载课件.ppt

上传人(卖家):三亚风情 文档编号:3041582 上传时间:2022-06-25 格式:PPT 页数:36 大小:5.88MB
下载 相关 举报
第8章-FTP文件上传下载课件.ppt_第1页
第1页 / 共36页
第8章-FTP文件上传下载课件.ppt_第2页
第2页 / 共36页
第8章-FTP文件上传下载课件.ppt_第3页
第3页 / 共36页
第8章-FTP文件上传下载课件.ppt_第4页
第4页 / 共36页
第8章-FTP文件上传下载课件.ppt_第5页
第5页 / 共36页
点击查看更多>>
资源描述

1、8.1 FTP概述概述8.2 FTP客户端开发相关类客户端开发相关类8.3 FTP文件上传下载器的制作文件上传下载器的制作8.4 FTP上传下载软件测试上传下载软件测试本章教学目的、要求本章教学目的、要求 理解文件传输的基本概念以及FTP服务的工作过程。 掌握FTP客户端编程涉及的相关类。 熟悉FTP上传下载器的制作。 本章教学重点及难点本章教学重点及难点 FTP客户端编程涉及的相关类。 FTP上传下载器的制作。8.1.1 文件传输的基本概念文件传输的基本概念文件传输服务是由FTP应用程序提供的,而FTP应用程序遵循的是TCP/IP中的文件传输协议(File Transfer Protocol

2、,即FTP),它允许用户将文件从一台计算机传输到另一台计算机,并且能保证传输的可靠性。FTP协议采用典型的C/S模式,在传输层选择TCP协议。图8.1描述了文件传输的工作过程。匿名FTP(anonymous FTP)服务的实质是:提供服务的机构在它的FTP服务器上建立一个公开账户(通常为Anonymous),并赋予该账户访问公共目录的权限,以便提供免费的服务。如果用户要访问提供匿名服务的FTP服务器,不需要输入用户名和密码。如果需要输入它们的话,也是用系统默认的公开账户,比如“anonymous”作为用户名,密码为空;有些FTP服务器可能要求用户用自己的电子邮件地址作为密码。8.2.1 Ftp

3、WebRequest类类FtpWebRequest类用于实现FTP客户端。若要获得FtpWebRequest的实例,需使用Create方法,该方法有以下两种重载形式。1. FtpWebRequest.Create(String)例如:FtpWebRequest reqFTP = (FtpWebRequest)FtpWebRequest.Create(ftp:/myFTPServer/myFile);2. FtpWebRequest.Create(Uri)例如:Uri siteUri = new Uri(ftp:/myFTPServer/myFile);FtpWebRequest reqFTP

4、= (FtpWebRequest)FtpWebRequest.Create(siteUri);表8-1和表8-2分别列出了FtpWebRequest类的常用属性和方法。属性属性含义含义Credentials已重写。获取或设置用于与FTP服务器通信的凭据EnableSsl获取或设置Boolean,它指定是否使用SSL连接KeepAlive获取或设置一个Boolean值,该值指定在请求完成之后是否保持到FTP服务器的控制连接Method已重写。获取或设置要发送到FTP服务器的命令RenameTo获取或设置重命名文件的新名称RequestUri已重写。获取此实例所请求的URITimeout已重写。获

5、取或设置等待请求的毫秒数UseBinary获取或设置一个Boolean值,该值指定文件传输的数据类型。若要传输文本数据,请将UseBinary属性由默认值true更改为falseUsePassive获取或设置客户端应用程序的数据传输过程的行为方法方法含义含义Abort已重写。终止异步FTP操作BeginGetRequestStream已重写。开始以异步方式打开请求的内容流以便写入BeginGetResponse已重写。开始以异步方式向FTP服务器发送请求并从FTP服务器接收响应Create已重载。初始化新的WebRequest(从WebRequest继承)CreateDefault为指定的UR

6、I方案初始化新的WebRequest实例(从WebRequest继承)EndGetRequestStream已重写。结束由BeginGetRequestStream启动的挂起的异步操作EndGetResponse已重写。结束由BeginGetResponse启动的挂起的异步操作GetRequestStream已重写。检索用于向FTP服务器上载数据的流GetResponse已重写。返回FTP服务器响应表表8-2FtpWebRequest类的常用方法类的常用方法发送命令是使用FtpWebRequest对象。以下代码新建FtpWebRequest对象,并设置常用属性:String ftpUriStr

7、ing = ”ftp:/”+ftpServerIP+/”;NetworkCredential networkCredential = new NetworkCredential(UserName, Password);/根据服务器信息创建FtpWebRequest类的对象FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(ftpUriString);/提供身份验证信息request.Credentials = networkCredential;/设置请求完成之后是否保持到FTP服务器的控制连接,默认值为Truerequest

8、.KeepAlive = true;/设置传输的数据类型request.UseBinary = true;/设置所要执行的FTP命令。假设此处为显示指定路径下的文件列表request.Method=WebRequestMethods.Ftp.ListDirectoryDetails;FtpWebResponse类用于封装FTP服务器对请求的响应。FtpWebResponse对象提供操作的状态以及从服务器下载的所有数据。获取FTP响应时,需通过调用FtpWebRequest对象的GetResponse方法获取。返回的对象必须强制转换为FtpWebResponse. 关键代码为:FtpWebReq

9、uest request = (FtpWebRequest)FtpWebRequest.Create(ftpUriString);FtpWebResponse response = (FtpWebResponse)request.GetResponse( );表8-3和表8-4分别列出了FtpWebResponse类的常用属性和方法。属性属性含义含义BannerMessage获取在登录前建立连接时FTP服务器发送的消息ContentLength已重写。获取从FTP服务器上接收的数据的长度ContentType当在派生类中重写时,获取或设置接收的数据的内容类型(从WebResponse继承)Ex

10、itMessage获取FTP会话结束时服务器发送的消息ResponseUri已重写。获取对请求发送响应的URIStatusCode获取从FTP服务器上发送的最新状态代码StatusDescription获取描述从FTP服务器发送的状态代码的文本WelcomeMessage获取身份验证完成时FTP服务器发送的消息方法方法含义含义Close已重写。释放响应所持有的资源GetResponseStream已重写。检索包含从FTP服务器上发送的响应数据的流在System.Net命名空间下,有一个NetworkCredential类。该类用于提供客户端身份验证机制的凭据。NetworkCredential

11、类是为基于密码的身份验证方案(如基本、简要、NTLM和Kerberos)提供凭据的基类,不支持基于公钥的身份验证方法,如安全套接字层(SSL)客户端身份验证。当需要验证访问权限时,我们需要使用这个类提供FTP服务器需要的用户名和密码,用法为:NetworkCredential myCredentials = new NetworkCredential(“FTP用户名”, 密码);表8-5列出了NetworkCredential类的常用属性。属性属性含义含义UserName获取或设置与凭据关联的用户名Password获取或设置与凭据关联的用户名的密码Domain获取或设置验证凭据的域名或计算机名

12、8.3.1FTP工具常用功能及工作流程工具常用功能及工作流程在使用FTP工具时,首先要登录服务器,验证登录用户是否合法。如果登录成功,便可以上传本地文件或文件夹,同时也可以管理FTP服务器端文件,包括下载、删除文件以及变更、访问、重命名目录、创建新目录等。通常FTP工具的工作流程如图8.2所示。根据图8.2的流程,设计本章FTP文件上传下载软件的界面如图8.3所示。软件工程名为“SelftpUpDownloader”,程序界面上各控件的属性描述见表8-6。Name控件类型控件类型功能描述功能描述frmMainForm程序主窗体lstbxFtpResrcsListBox资源一览区rTbxFtpR

13、esViewRichTextBox资源浏览提示tbxSrvIpTextBoxFTP服务器IP地址编辑栏tbxUsrTextBox用户名填写栏chkbxAnonymousCheckBox【匿名】复选框tbxPwdTextBox密码输入框btnLoginButton【登录】按钮btnLogoutButton【注销】按钮tbxLoginTextBox登录状态提示btnUploadButton【上传】按钮btnDownloadButton【下载】按钮btnDeleteButton【删除】按钮tbxOptTextBox操作结果提示lstbxFtpStatsListBox连接状态显示区btnExitBut

14、ton【退出】按钮btnAboutboxButton【关于】按钮1. 登录和注销登录和注销本软件的登录界面如图8.4所示。类似这样的功能主要通过下面的界面控制代码来实现。以下是登录FTP服务器的代码。因为FTP协议是基于TCP的,又由于TCP连接的无状态性,每一次对FTP访问后,连接会自动断开,故注销退出登录的功能很简单,只要实现一些界面效果的控制就行了,其代码为。2. 程序与程序与FTP服务器的交互服务器的交互创建FtpWebRequest对象:private FtpWebRequest CreateFtpWebRequest(string uri, string requestMethod

15、)FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(uri);request.Credentials = networkCredential;request.KeepAlive = true;request.UseBinary = true;request.Method = requestMethod;return request;获取服务器返回的响应体。3. 显示资源列表显示资源列表为了能让用户直观地看到FTP服务器上的资源,客户端必须动态显示当前目录下的资源列表。本程序编写了ShowFtpFileAndDirectory

16、( )方法显示FTP上的文件和目录,其完整实现的源代码。客户端通过向服务器“上送”WebRequestMethods.Ftp.ListDirectoryDetails方法,获取服务器返回的、包装了其上全部资源详细信息的响应体。在解析这个响应体生成的文件流时,客户端会将目录名和文件名加以区分,在每个目录名之前加上 目录 标记,其界面显示效果如图8.5所示。4. 变更访问目录变更访问目录FTP客户端支持用户变更当前目录,与操作【我的电脑】资源管理器类似,双击目录名进入相应的文件夹,双击“返回上层目录”退回到浏览过的上一级文件夹,如图8.5。这样用户就可以地访问FTP上的所有信息资源了。变更目录的模

17、块代码。5. 上传文件上传文件向服务器上传文件的代码。GetUriString( )方法的实现过程如下:private string GetUriString(string fileName)string uri = string.Empty;if (currentDir.EndsWith(/)uri = ftpUriString + currentDir + fileName;elseuri = ftpUriString + currentDir + / + fileName;return uri;6. 下载文件下载文件FTP文件下载的原理与上传类似,只不过向服务器上送的方法命令不同,为We

18、bRequestMethods.Ftp.DownloadFile,打开的数据通道为下载流responseStream,其代码为。GetSelectedFile( )方法的实现过程如下:private string GetSelectedFile()string filename = ;if (!(lstbxFtpResrcs.SelectedIndex = -1 | lstbxFtpResrcs.SelectedItem.ToString().Substring(0, 4) = 目录)string namefield = lstbxFtpResrcs.SelectedItem.ToString

19、().Split( );filename = namefield0;return filename;7. 删除文件删除文件为了安全起见,一般的FTP服务器都不对普通用户开放删除功能,但本章软件将删除文件的功能也一并实现,其代码为。8. 【关于关于】对话框对话框与其他应用软件一样,FTP客户端也有声明程序版本和版权的【关于】对话框,设计这个对话框如图8.6所示。笔者在自己单位的局域网内运行这个程序,FTP服务器的IP为“ 192.168.101.3”,匿名登录,效果如图8.7所示。选用笔者收藏的两张精美的美人鱼图片做测试用文件,文件位于【我的文档】【图片收藏】中,如图8.8所示。(1)上传文件启

20、动FTP上传下载器,双击进入自己的文件夹目录,如图8.9所示。单击【上传】按钮,弹出【打开】对话框,选择自己电脑上收藏的图片文件后,单击【打开】,开始上传文件,如图8.10所示。上传完毕,出现“上传成功!”消息框,点【确定】,可以在当前目录下看到刚刚传上服务器的文件,如图8.11中框出。(2)下载文件选中刚才传上服务器的一张图片,单击【下载】按钮,如图8.12所示。在弹出的【另存为】对话框中,选择文件的保存路径,这里选择保存到【我的文档】,如图8.13所示。用同样的方法保存另一张图片,操作完后在【我的文档】目录下,可以看到刚刚保存的图片,如图8.14所示。(3)删除文件选择文件名后单击【删除】按钮,在弹出的【确认文件删除】消息框中选择【是(Y)】,如图8.15所示。用同样方法删除服务器上另一张图片,此时界面自动刷新,前面上传到该目录下的两张图片已经不见了,如图8.16所示。本章作业本章作业理论作业:1、为FTP上传下载器添加文件重命名功能,要求自行 编写客户端程序。上机作业:实验九 FTP上传下载器的制作

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第8章-FTP文件上传下载课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|