Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net文件上载控件,将文件上载到ftp_C#_Asp.net_File Upload_Ftp - Fatal编程技术网

C# asp.net文件上载控件,将文件上载到ftp

C# asp.net文件上载控件,将文件上载到ftp,c#,asp.net,file-upload,ftp,C#,Asp.net,File Upload,Ftp,我正在尝试通过asp.net表单上载文件。问题是,当我使用FileUpload控件获取文件路径时,得到的只是文件名,而不是完整路径。要将文件上传到ftp,我需要完整路径。我能做到这一点吗 表格编号: <div align="center"> <asp:FileUpload id="FileUploadControl" runat="server" Width="600px" /> <br />

我正在尝试通过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>
不一定要使用FileUpload,但我需要一些东西,用户可以从文件夹中选择文件,并提供完整路径。

直接从:

保存上传的文件

FileUpload控件不会自动启动 在用户选择要上载的文件后,将文件保存到服务器。 必须显式提供控件或机制以允许用户 提交指定的文件。例如,您可以提供一个按钮 用户单击以上载文件。您编写的代码 保存指定的文件应调用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);
        }
    }
}

是的,谢谢,这就是工作。我只是不明白,我怎么会错过这个。今天和这个时代,他们已经有很多例子了,说明了如何做谷歌搜索,带来了很多例子
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);
        }
    }
}