ftp服务器搭建部署与C#实现ftp文件上传的方法是什么

   2023-02-09 学习力0
核心提示:本文小编为大家详细介绍“ftp服务器搭建部署与C#实现ftp文件上传的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“ftp服务器搭建部署与C#实现ftp文件上传的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧

本文小编为大家详细介绍“ftp服务器搭建部署与C#实现ftp文件上传的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“ftp服务器搭建部署与C#实现ftp文件上传的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

一、简介

FTP是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文本协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在ftp的使用当中,用户经常遇到两个概念:“下载”(Download)和“上传”(upload)。“下载”文件就是从远程主机拷贝文件至自己的计算机上;“上传”文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

二、搭建FTP服务器步骤(Window sserver 2016为例)

安装FTP服务器及部署   

ftp服务器搭建部署与C#实现ftp文件上传的方法是什么

ftp服务器搭建部署与C#实现ftp文件上传的方法是什么

ftp服务器搭建部署与C#实现ftp文件上传的方法是什么

ftp服务器搭建部署与C#实现ftp文件上传的方法是什么

ftp服务器搭建部署与C#实现ftp文件上传的方法是什么

ftp服务器搭建部署与C#实现ftp文件上传的方法是什么

添加FTP站点

ftp服务器搭建部署与C#实现ftp文件上传的方法是什么

IP地址填本机地址(不填则是本机全部IP),端口默认21,SSL是一种数字加密证书,可申请,在此没有可选择无。

ftp服务器搭建部署与C#实现ftp文件上传的方法是什么

ftp服务器搭建部署与C#实现ftp文件上传的方法是什么

 添加ftp上传下载专用用户(也可以选择不添加,使用管理员用户也OK) 

ftp服务器搭建部署与C#实现ftp文件上传的方法是什么

ftp服务器搭建部署与C#实现ftp文件上传的方法是什么

 到此ftp服务器安装和搭建部署,就完成了。

三、登录测试  

浏览器中输入命令 ftp://IP:端口,弹窗提示输入刚刚新建的用户名密码即可。

用户名和密码输入正确的话就会出现公开的路径。

ftp服务器搭建部署与C#实现ftp文件上传的方法是什么

四、C#上传文件到FTP服务器

        /// <summary>
        /// FTP的服务器地址,格式为ftp://192.168.1.234:8021/。
        /// </summary>
        public string FTPCONSTR { get; set; }
        /// <summary>
        /// //FTP服务器的用户名
        /// </summary>
        private string FTPUSERID { get; set; }
        /// <summary>
        /// //FTP服务器的密码
        /// </summary>
        private string FTPPASSWORD { get; set; }
        private string ftpIP { get; set; }
        private string ftpPort { get; set; }
public FTPHelper(string ip = "IP", string username = "登录用户名", string password = "用户密码", string port = "端口")
        {
            FTPCONSTR = string.Format("{0}://{1}:{2}/", "ftp", ip, port);
            FTPUSERID = username;
            FTPPASSWORD = password;
        }
        /// <summary>
        /// 上传文件到远程ftp
        /// </summary>
        /// <param name="path">本地的文件目录</param>
        /// <param name="name">文件名称</param>
        /// <returns></returns>
        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(FTPUSERID, 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;
            }
        }

调用 

            string txtFilePath="";
            try
            {
                OpenFileDialog openFileDialogTemp = new OpenFileDialog();
                openFileDialogTemp.Title = "选择要上传的文件";
                DialogResult dr = openFileDialogTemp.ShowDialog();
                if (!File.Exists(openFileDialogTemp.FileName))
                {
                    GLOBALS.msgbox("内容为空,请选择文件");
                    return;
                }
                if (dr == DialogResult.OK)
                {
                    txtFilePath= openFileDialogTemp.FileName;
                    string filePath = this.txtFilePath.Text;
 
                }
            }
            catch (Exception ex)
            {
 
            }
            string id = DateTime.Now.ToString("yyyyMMddHHmmss");
            string isPath = DateTime.Now.ToString("yyyy-MM-dd");
            string filePath = txtFilePath;
            string uploadUrl = isPath + "\\" + id + ".jpg";                
            FTPHelper FTPHelper = new FTPHelper();
            bool uploadresult = FTPHelper.UploadFile(filePath, uploadUrl);

读到这里,这篇“ftp服务器搭建部署与C#实现ftp文件上传的方法是什么”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注***行业资讯频道。

 
标签: ftp
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • Perl脚本学习经验(四)--Perl中sftp的使用
    使用sftp,需要使用Except模块,该模块需要下载安装在perl目录下,可以上http://www.cpan.org/上下载对应的安装包;1. 用root用户登录环境;2. cd /usr/lib/perl5/ 3. 上传包IO-Tty-1.10.tar.gz 和 Expect-1.21.tar.gz到perl5目录下;4. 安装IO-Tty-1.10
    02-09
  • VB.Net实现登陆Ftp的方法
    开发环境 VB.Net2005   Windows2003   '调用方式        If Logined() Then            MsgBox("登陆成功")        Else            MsgBox("登陆失败")        End If'功能函数Imports SystemImports System
    02-09
  • VB.Net实现Ftp上传的方法
    调用方式:UploadFile("d:\lob.rar", False) '  2个参数分别为 准备上传的文件完整路径、是否续传功能函数: Public Sub UploadFile(ByVal Str_LocalFileName As String, ByVal Bool_Resume As Boolean)        Dim LobSocket As Socket      
    02-09
  • Java FTP协议实现文件下载功能
    Java FTP协议实现文件下载功能
    目录一、FTP协议二、文件上传1.连接服务器2.登录操作3.上传操作三、文件下载1.连接服务器2.登录操作3.下载操作四、总结一、FTP协议ftp是(FileTransferProtocol)的缩写,文件传输协议必然是用来传输文件的协议。并且是用来在两台计算机之间传输文件,是inter
  • Delphi - TIdFTP 两个重要函数
    TIdFTP 两个重要函数项目开发过程中发现,直接对于服务器上的文件/路径进行处理,是很危险的事情,因为一旦文件/路径不存在,程序就会抛异常,影响客户体验。所以在对服务器上的文件/路径进行访问之前,我们一般先判断服务器上是否存在某个路径/文件,然后再
    02-09
  • [Perl]FTP自动上传文件的脚本以及配置文件
     原文:http://blog.csdn.net/zhengyun_ustc/archive/2005/01/05/perlftpautoupload.aspx本应用程序设计的几个基本理念是:l         工具箱再利用:   尽可能利用已有的工具;l         简化运行步骤;   不引入过多的业务逻辑,满足的
    02-09
  • Perl脚本学习经验(三)--Perl中ftp的使用
    使用use Net::FTP;Demo:    my $Server = '192.168.1.1';    my $User = 'admin';    my $Password = 'admin';        my $ftp = Net::FTP-new($Server,Passive = 0, Debug = 1,Timeout = 10) or die "Could not connect.\n";    if (
    02-09
  • 【PHP库】phpseclib - sftp远程文件操作
    需求场景说明对接的三方商家需要进行文件传输,并且对方提供的方式是 sftp 的服务器账号,我们需根据他们提供的目录进行下载和上传指定文件。安装composer require phpseclib/phpseclib:~3.0使用sftp功能1.新建并设置config/sftp.php文件return ['sftp' = ['h
    02-08
  • 如何在Webstorm/Phpstorm中设置连接FTP,并快速进行文件比较,上传下载,同步等操作-杂谈
    如何在Webstorm/Phpstorm中设置连接FTP,并快速
    Phpstorm除了能直接打开localhost文件之外,还可以连接FTP,除了完成正常的数据传递任务之外,还可以进行本地文件与服务端文件的异同比较,同一文件自动匹配目录上传,下载,这些功能是平常IDE,FTP软件中少见的,而且是很耗工作时间的一个操作。换句话说,在
    08-30 FTPPhpStorm
  • SWT(JFace) FTP客户端实现
    SWT(JFace)小制作:FTP客户端实现
点击排行