c#ftp上传文件实例代码(简易版)

  • Post category:other

以下是详细讲解“C# FTP上传文件实例代码(简易版)”的完整攻略:

什么是FTP?

FTP(File Transfer Protocol)是一种用于在网络上传输文件的标准协议。在 C# 中,我们可以使用 FtpWebRequest 类和 FtpWebResponse 类来实现 FTP 文件上传。

步骤1:创建FTP连接

在上传文件之前,我们需要先创建一个 FTP 连接。以下是创建 FTP 连接的示例:

string ftpServer = "ftp://ftp.example.com/";
string ftpUsername = "username";
string ftpPassword = "password";

FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(ftpServer);
ftpRequest.Credentials = new NetworkCredential(ftpUsername, ftpPassword);
ftpRequest.Method = WebRequestMethods.Ftp.UploadFile;

在上面的示例中,我们首先指定 FTP 服务器的地址、用户名和密码。然后,我们使用 FtpWebRequest 类创建一个 FTP 请求对象,并设置请求的方法为上传文件。

步骤2:上传文件

在创建 FTP 连接之后,我们可以使用 FtpWebRequest 类的 GetRequestStream() 方法获取一个用于上传文件的流。以下是上传文件的示例:

string localFilePath = @"C:\example.txt";
string remoteFilePath = "/example.txt";

using (Stream ftpStream = ftpRequest.GetRequestStream())
using (FileStream localFileStream = new FileStream(localFilePath, FileMode.Open))
{
    byte[] buffer = new byte[10240];
    int read;
    while ((read = localFileStream.Read(buffer, 0, buffer.Length)) > 0)
    {
        ftpStream.Write(buffer, 0, read);
    }
}

在上面的示例中,我们首先指定本地文件的路径和远程文件的路径。然后,我们使用 FtpWebRequest 类的 GetRequestStream() 方法获取一个用于上传文件的流,并使用 FileStream 类打开本地文件的流。接下来,我们使用一个循环将本地文件的内容写入 FTP 流中。

示例1:上传单个文件

以下是上传单个文件的示例:

string ftpServer = "ftp://ftp.example.com/";
string ftpUsername = "username";
string ftpPassword = "password";
string localFilePath = @"C:\example.txt";
string remoteFilePath = "/example.txt";

FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(ftpServer + remoteFilePath);
ftpRequest.Credentials = new NetworkCredential(ftpUsername, ftpPassword);
ftpRequest.Method = WebRequestMethods.Ftp.UploadFile;

using (Stream ftpStream = ftpRequest.GetRequestStream())
using (FileStream localFileStream = new FileStream(localFilePath, FileMode.Open))
{
    byte[] buffer = new byte[10240];
    int read;
    while ((read = localFileStream.Read(buffer, 0, buffer.Length)) > 0)
    {
        ftpStream.Write(buffer, 0, read);
    }
}

在上面的示例中,我们上传了一个名为 example.txt 的文件。我们首先指定 FTP 服务器的地址、用户名和密码,然后指定本地文件的路径和远程文件的路径。接下来,我们使用 FtpWebRequest 类的 Create() 方法创建一个 FTP 请求对象,并设置请求的方法为上传文件。最后,我们使用一个循环将本地文件的内容写入 FTP 流中。

示例2:上传多个文件

以下是上传多个文件的示例:

string ftpServer = "ftp://ftp.example.com/";
string ftpUsername = "username";
string ftpPassword = "password";
string[] localFilePaths = { @"C:\example1.txt", @"C:\example2.txt", @"C:\example3.txt" };
string remoteDirectoryPath = "/";

foreach (string localFilePath in localFilePaths)
{
    string remoteFilePath = remoteDirectoryPath + Path.GetFileName(localFilePath);

    FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(ftpServer + remoteFilePath);
    ftpRequest.Credentials = new NetworkCredential(ftpUsername, ftpPassword);
    ftpRequest.Method = WebRequestMethods.Ftp.UploadFile;

    using (Stream ftpStream = ftpRequest.GetRequestStream())
    using (FileStream localFileStream = new FileStream(localFilePath, FileMode.Open))
    {
        byte[] buffer = new byte[10240];
        int read;
        while ((read = localFileStream.Read(buffer, 0, buffer.Length)) > 0)
        {
            ftpStream.Write(buffer, 0, read);
        }
    }
}

在上面的示例中,我们上传了三个文件。我们首先指定 FTP 服务器的地址、用户名和密码,然后指定本地文件的路径数组和远程目的路径。接下来,我们使用一个循环遍历本地文件的路径数组,并为每个文件创建一个 FTP 请求对象。最后,我们使用一个循环将本地文件的内容写入 FTP 流中。

结论

在本文中,我们详细介绍了如何使用 C# 实现 FTP 文件上传。我们介绍了创建 FTP 连接、上传文件的基本步骤,并提供了两个示例来演示如何上传单个文件和多个文件。通过本文的学习,我们可以更加熟练地使用 C# 实现 FTP 文件上传,提高代码的质量和可靠性。