c# - 将文件保存到 ftp 服务器

标签 c# .net file upload

我正在用 asp.net 和 c# 创建一个文件 uploader 。 我只是想将上传的文件直接保存到 ftp 服务器。 是否可以?如果可能的话,我该如何设置该 ftp 服务器身份验证信息。

(127.0.0.1只是一个例子。我不能写我的真实ip。而且我必须使用HTTP协议(protocol)获取文件。我们的一些客户ISP不支持ftp。这是主要问题。)

protected void submit_button_Click(object sender, EventArgs e)
    {
        string filename = Path.GetFileName(upload_file.FileName);
        string fileExt = Path.GetExtension(upload_file.FileName);

        if (fileExt == ".csv")
        {
            string folder = Server.MapPath("ftp://127.0.0.1/uploads/");
                upload_file.SaveAs(folder + "/" + filename);
                ltr.Text = "Successful.";
        }
        else
        {
            upload_file.BorderColor = System.Drawing.Color.Red;
            ltr.Text = "File type must be .csv.";
        }
    }

最佳答案

很简单。 下面的方法只是传入文件名。显然更改 StreamReader 中的目录。

编辑:抱歉,刚刚注意到您说您的客户端不支持 FTP,因此以下内容无法正常工作。

public bool ftpTransfer(string fileName)
{
    try
    {
        string ftpAddress = "127.0.0.1";
        string username = "user";
        string password = "pass";

        using (StreamReader stream = new StreamReader("C:\\" + fileName))
        {
            byte[] buffer = Encoding.Default.GetBytes(stream.ReadToEnd());

            WebRequest request = WebRequest.Create("ftp://" + ftpAddress + "/" + "myfolder" + "/" + fileName);
            request.Method = WebRequestMethods.Ftp.UploadFile;
            request.Credentials = new NetworkCredential(username, password);
            Stream reqStream = request.GetRequestStream();
            reqStream.Write(buffer, 0, buffer.Length);
            reqStream.Close();
        }
        return true;
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.ToString());
        return false;
    }
}

编辑:修改了文件名。

关于c# - 将文件保存到 ftp 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16296546/

相关文章:

c - 文件结束的原因

c# - 无法让 XmlDocument.SelectNodes 检索我的任何节点?

c# - 索引在 C# 中的数组边界之外

c# - WCF 和可能的 Skype 的端口 80 问题

c# - MarshalByValueComponent 是否仍在使用或有用?

古巴的.NET CultureInfo?

c# - 将存储库公开为 IQueryable

c# - 如何限制 visual studio 中窗体的最小尺寸?

python - 将文件转换为字符串,然后重建该字符串并再次使其成为文件

c++ - 如何将文件存储在可执行文件中