FTP服务器搭建及C#实现FTP文件的上传 | 您所在的位置:网站首页 › 搭建ftp远程文件服务器 › FTP服务器搭建及C#实现FTP文件的上传 |
目录 1.ftp简介 2.搭建FTP服务器步骤(win10为例) 2.1开启ftp功能 2.2登录测试 2.2.1从网页登录 2.2.2通过cmd命令 3.上传文件到FTP服务器 3.1创建类库 3.2调用 1.ftp简介FTP是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文本协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在ftp的使用当中,用户经常遇到两个概念:“下载”(Download)和“上传”(upload)。“下载”文件就是从远程主机拷贝文件至自己的计算机上;“上传”文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。 2.搭建FTP服务器步骤(win10为例) 2.1开启ftp功能控制面板——》程序和功能——》打开或关闭Windows功能将如图的选框选中 2.1.2添加FTP站点 控制面板——》管理工具——》双击Internet信息服务(IIS)管理器如下图添加FTP站点 2.1.3设置站点名称和想要公开的路径 2.1.4绑定IP地址和ssl设置 IP地址填本机地址,端口默认21,ssl是一种数字加密证书,可申请,在此没有可选择无。 2.1.5设置权限,建议设置成读取状态,点击完成即可。 2.1.6添加用户 右击计算机——》管理——》本地用户和组——》用户
浏览器中输入命令ftp://本地IP,如下图所示,输入用户名密码 用户名和密码输入正确的话就会出现公开的路径。 通过出门的命令进入ftp来上传或下载 输入“ftp”切换到ftp下面,然后输入“open 服务器地址” 此时要求输入用户名密![]() 总结: ┏━━━━━━━━━━━━━━━━━━━━━┓ ┃ftp ┃ ┃c:\ftp ┃ ┃ftp:\open 主机IP+端口 (也可以不用写端口) ┃ ┃当显示****logged in时,就说明登入成功了。 ┃ ┃dir 查看FTP上的文件 ┃ ┃CD 进入某个文件夹 ┃ ┃GET 下载文件到本地 ┃ ┃PUT 上传文件到FTP ┃ ┃delete 删除FTP上的文件 ┃ ┃bye 退出连接 ┃ ┃quit 同上 ┃ ┗━━━━━━━━━━━━━━━━━━━━━┛ 3.上传文件到FTP服务器 3.1创建类库 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Net; namespace PrintDBSQL.Framework.Utility { public class FTPHelper { /// /// FTP的服务器地址,格式为ftp://192.168.1.234:8021/。 /// private string FTPCONSTR { get; set; } /// /// //FTP服务器的用户名 /// private string FTPUSERNAME { get; set; } /// /// //FTP服务器的密码 /// private string FTPPASSWORD { get; set; } public FTPHelper(string ip, string username, string password, string port="21") { FTPCONSTR = string.Format("{0}://{1}:{2}/", "ftp", ip, port); FTPUSERNAME = username; FTPPASSWORD = password; } #region 本地文件上传到FTP服务器 /// /// 上传文件到远程ftp /// /// 本地的文件目录 /// 文件名称 /// public bool UploadFile(string path, string name) { FileInfo f = new FileInfo(path); path = FTPCONSTR + name;//这个路径是我要传到ftp目录下的这个目录下 FtpWebRequest reqFtp = (FtpWebRequest)FtpWebRequest.Create(new Uri(path)); reqFtp.Method = WebRequestMethods.Ftp.UploadFile; reqFtp.UsePassive = false;//只需要添加这一句话 reqFtp.UseBinary = true; reqFtp.Credentials = new NetworkCredential(FTPUSERNAME, FTPPASSWORD); reqFtp.KeepAlive = false; reqFtp.Method = WebRequestMethods.Ftp.UploadFile; reqFtp.ContentLength = f.Length; int buffLength = 2048; byte[] buff = new byte[buffLength]; int contentLen; FileStream fs = f.OpenRead(); try { Stream strm = reqFtp.GetRequestStream(); contentLen = fs.Read(buff, 0, buffLength); while (contentLen != 0) { strm.Write(buff, 0, contentLen); contentLen = fs.Read(buff, 0, buffLength); } strm.Close(); fs.Close(); return true; } catch (Exception ex) { return false; } } #endregion } } 3.2调用:FTP服务器中ftp站点的 物理路径为:C:\\ftpFileLocation。如果将logo.png图片上传至ftp服务器中的MPS文件夹下(即:C:\\ftpFileLocation\MPS\logo.png),调用如下: string ftpIP= "192.168.11.196"; string ftpPort= "21"; string ftpUserName= "test"; string ftpPassword= "123"; string localPath = "G:\\Project\\logo.png"; string remotePath = "/MPS/logo.png"; FTPHelper FTPHelper = new FTPHelper(ftpIP, ftpUserName, ftpPassword, ftpPort); bool uploadresult = FTPHelper.UploadFile(localPath , remotePath); |
CopyRight 2018-2019 实验室设备网 版权所有 |