【问题标题】:asp.net fileupload control, uploading file to ftp [duplicate]asp.net fileupload 控件,将文件上传到 ftp [重复]
【发布时间】:2016-04-01 04:39:11
【问题描述】:

我正在尝试通过 asp.net 表单上传文件。问题是当我使用 FileUpload 控件获取文件的路径时,得到的只是文件名,而不是完整路径。并将文件上传到 ftp 我需要一个完整路径。我能以某种方式实现这一目标吗?

表格代码:

<div align="center">
            <asp:FileUpload id="FileUploadControl" runat="server" Width="600px" />
            <br />
            <asp:Button ID="btnUpload" runat="server" Text="Upload" OnClick="btnUpload_Click" />
</div>

按钮点击代码:

protected void btnUpload_Click(object sender, EventArgs e)
        {
            if(FileUploadControl.FileName != null)
            {
                string filename = Path.GetFileName(FileUploadControl.FileName);
                //MessageBox.Show(this, Server.MapPath(FileUploadControl.FileName));


            var temp = ftp + ftpFolder + Path.GetFileName(FileUploadControl.FileName);

            try
            {
                using (WebClient client = new WebClient())
                {
                    client.Credentials = new NetworkCredential(loginName, password);
                    client.UploadFile(temp, "STOR", FileUploadControl.FileName); // ???
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }

            }

        }

使用 FileUpload 不是必需的,但我需要一些用户可以从文件夹中选择文件并提供完整路径的东西。

【问题讨论】:

  • 当今时代,他们有很多例子已经在堆栈上,说明如何做这个谷歌搜索带来了很多例子

标签: c# asp.net file-upload ftp


【解决方案1】:

直接来自MSDN

保存上传的文件

FileUpload 控件不会自动 用户选择要上传的文件后,将文件保存到服务器。 您必须显式提供控件或机制以允许用户 提交指定的文件。例如,您可以提供一个按钮 用户点击上传文件。您写入的代码 保存指定文件应该调用 SaveAs 方法,该方法保存 文件的内容到服务器上的指定路径。通常情况下, SaveAs 方法在事件处理方法中调用 向服务器发起一个帖子。例如,如果您提供一个按钮 要提交文件,您可以包含将文件保存在其中的代码 点击事件的事件处理方法。

因此,您永远不会真正保存文件(甚至不会上传文件)。你想要的是这样的:

static string yourSuperSecretDirectory = @"C:\ApplicationName\Uploads";
protected void btnUpload_Click(object sender, EventArgs e)
{
    if(FileUploadControl.HasFile)
    {
        string filename = Path.Combine(yourSuperSecretDirectory, FileUploadControl.FileName);
        FileUploadControl.SaveAs(filename); //actually save/upload the file

        string temp = ftp + ftpFolder + filename

        try
        {
            using (WebClient client = new WebClient())
            {
                client.Credentials = new NetworkCredential(loginName, password);
                client.UploadFile(temp, "STOR", FileUploadControl.FileName); // ???
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.StackTrace);
        }
    }
}

【讨论】:

  • 是的,谢谢,这就是工作。我只是不明白,我怎么能错过这个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-08
  • 2013-04-26
  • 1970-01-01
  • 2012-04-21
  • 1970-01-01
  • 2017-04-30
相关资源
最近更新 更多