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添加用户

右击计算机——》管理——》本地用户和组——》用户 

       

 2.2登录测试

2.2.1从网页登录

        浏览器中输入命令ftp://本地IP,如下图所示,输入用户名密码

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

 2.2.2通过cmd命令

        通过出门的命令进入ftp来上传或下载

  • 输入“ftp”切换到ftp下面,然后输入“open 服务器地址” 
  • 此时要求输入用户名密
  • 上传文件,利用put '本地文件路径',来上传

 

 总结:

┏━━━━━━━━━━━━━━━━━━━━━┓
┃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
    {
        /// <summary>
        /// FTP的服务器地址,格式为ftp://192.168.1.234:8021/。
        /// </summary>
        private string FTPCONSTR { get; set; }
        /// <summary>
        /// //FTP服务器的用户名
        /// </summary>
        private string FTPUSERNAME { get; set; }
        /// <summary>
        /// //FTP服务器的密码
        /// </summary>
        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服务器
        /// <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(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);

  • 20
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现将MP4文件上传FTP服务器,可以使用Java中的Apache Commons Net库提供的FTP客户端来实现。 首先,你需要在项目中添加Apache Commons Net库的依赖,然后创建一个FTP客户端的实例。 ```java import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; public class FTPUploader { public static void main(String[] args) { String server = "ftp.example.com"; int port = 21; String user = "username"; String password = "password"; String localFile = "path/to/local/file.mp4"; String remoteFile = "path/to/remote/file.mp4"; FTPClient ftpClient = new FTPClient(); try { ftpClient.connect(server, port); ftpClient.login(user, password); ftpClient.enterLocalPassiveMode(); ftpClient.setFileType(FTP.BINARY_FILE_TYPE); ftpClient.storeFile(remoteFile, new FileInputStream(localFile)); ftpClient.logout(); } catch (IOException e) { e.printStackTrace(); } finally { if (ftpClient.isConnected()) { try { ftpClient.disconnect(); } catch (IOException e) { e.printStackTrace(); } } } } } ``` 在以上代码中,你需要提供FTP服务器的主机名、端口号、用户名和密码。然后,指定本地MP4文件的路径和上传后在FTP服务器上保存文件的路径。 连接并登录到FTP服务器后,设置文件类型为二进制,然后使用`storeFile`方法上传本地文件到指定的远程路径。 最后,退出登录并断开与FTP服务器的连接。 需要注意的是,这只是一个简单的示例,你可能需要添加一些错误处理和异常处理来提高代码的鲁棒性。同时,还可以根据需求进一步封装这个功能以便于复用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值