VB.NET FTP传输及Win7下的FTP服务配置

来源:互联网 发布:查询数据库重复记录 编辑:程序博客网 时间:2024/04/30 05:54

FTP是File Transfer Protocol的英文简称,中文是文件传输协议。

我们可以通过一个支持FTP协议的客户端程序,连接到远程主机上的FTP服务器,上传或者下载文件。

TCO/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。

FTP的任务是从一台计算机将文件传送到另一台计算机上,并不受操作系统的限制。


首先我们来进行一下Win7下的FTP服务的配置。

我们先新建访问FTP的用户。右键点击计算机,点击管理,进入本地用户和组中,新建用户。

控制面板-->程序和功能-->打开或关闭Windows功能

勾选上Internet信息服务中的全部。

控制面板-->管理工具

双击打开Internet信息服务(IIS)管理器。

在Internet信息服务(IIS)管理器中左边的网站上右键,点击“添加FTP站点”。

在站点信息中输入FTP站点名称和物理路径。点击下一步。

在绑定和SSL设置中,添加FTP服务器的IP地址。勾选自动启动FTP站点。SSL选“无”。点击下一步。

在身份验证和授权信息中,身份验证勾选基本。点击完成。

按Win + R 打开运行,输入services.msc打开服务窗口,找到Microsoft FTP Service,启动服务。

回到Internet信息服务(IIS)管理器中,右键点击新建的FTP站点,启动FTP。

Internet信息服务(IIS)管理器-->FTP授权规则-->编辑权限-->安全-->编辑-->添加。在选择用户或组中输入用户名,然后点击确认。在权限窗口中勾选完全控制。


Internet信息服务(IIS)管理器-->授权规则-->添加允许规则,

在指定的用户中输入之前新建的用户名。权限中的读取、写入都勾选上

在开始菜单中输入window然后找到windows防火墙,点允许程序或功能通过windows防火墙

在允许程序通过windows防火墙通信中选择FTP服务器,点击下方的“允许运行另一程序”,在弹出窗口里,点“浏览”,找到C:\Windows\System32\inetsrv\inetinfo.exe,点添加,也就是上图中的Internet Infomation Services。将后面的两个框也都选中。因为在Win7下,FTP是IIS的一个组件,因此也必须在防火墙中将IIS设置为允许。而IIS又不在默认的列表中,因此得手动添加。

在windows防火墙中点高级设置,在入站规则中点新建规则,选中端口,点下一步。

在特定本地端口中输入21,点下一步。点击允许连接,点击下一步。

域、专用、公用都勾选上。点击下一步。

名称和描述都输入21,点击完成。

在地址栏输入ftp://加上FTP服务器的IP地址,会出现登录框,输入用户名和密码,登录成功则说明我们的FTP服务器配置成功啦。


配置过程参考了http://www.2cto.com/os/201409/337804.html


FTP收发文件

配置好了FTP服务器,我们就可以利用FTP协议收发文件啦。

创建远程目录

Private Sub MkFtpDir(ByVal path As String, ByVal ftpUsr As String, ByVal ftpPwd As String)        Dim ftpReq As System.Net.FtpWebRequest = Nothing        Dim ftpRes As System.Net.FtpWebResponse = Nothing        Try            ftpReq = System.Net.WebRequest.Create(path)            ftpReq.Credentials = New System.Net.NetworkCredential(ftpUsr, ftpPwd)            ftpReq.Method = System.Net.WebRequestMethods.Ftp.MakeDirectory            ftpReq.KeepAlive = False            ftpReq.UsePassive = False            ftpReq.Timeout = 1000            ftpRes = ftpReq.GetResponse()            ftpRes.Close()        Catch ex As Exception        End TryEnd Sub

本地上载文件到FTP服务器

MkFtpDir("ftp://192.168.0.197/21020408", "liuchuan", "1q2w3e4r")Dim wc As System.Net.WebClient = Nothingwc = New System.Net.WebClient()wc.Credentials = New System.Net.NetworkCredential("liuchuan", "1q2w3e4r")Dim responseArray As Byte() = wc.UploadFile("ftp://192.168.0.197/21020408/20160125_142843_828256.tif", "E:\ftp\21020408\20160125_142843_828256.tif")Application.DoEvents()wc.Dispose()

获取ftp服务器上存在的文件名

ftpReq = System.Net.WebRequest.Create(path)ftpReq.Credentials = New System.Net.NetworkCredential(ftpUsr, ftpPwd)ftpReq.Method = System.Net.WebRequestMethods.Ftp.ListDirectoryftpReq.KeepAlive = FalseftpReq.UsePassive = FalseftpReq.Timeout = 1000ftpRes = ftpReq.GetResponse()'获取ftp的返回值Dim strContent As String = ""Dim content(1024) As ByteDim index_a As Integer = 0Dim bufferLen As Integer = 0index_a = ftpRes.GetResponseStream.Read(content, 0, content.Length)bufferLen = bufferLen + index_aWhile index_a > 0index_a = ftpRes.GetResponseStream.Read(content, 0, content.Length)bufferLen = bufferLen + index_aEnd WhilestrContent = strContent & System.Text.Encoding.UTF8.GetString(content, 0, bufferLen)MessageBox(strContent)





2 0
原创粉丝点击