如何在 Windows Forms 中上传文件?

11

在Windows表单中,如何上传文件,我没有找到任何文件上传控件。你能给我任何参考吗?我想将文档存储在我的系统驱动器中。谢谢。

在窗体应用程序中上传文件, 没有找到文件上传控件。请问您有相关的参考资料吗?我希望将文档存储在系统驱动器里。谢谢。


你想上传到哪里? - andy
在我的系统C盘中,通常我们使用文件上传来将文档存储在解决方案中。那么是否有办法将文档存储在C或D驱动器中? - Ssasidhar
"上传到本地驱动器???这是什么问题。" - jondinham
1
@Ssasidhar:请澄清你的问题。人们正在回答各种方向,因为不清楚你想要实现什么。投票关闭。 - Jean-François Corbett
Paul先生,我在我的窗口应用程序中有一个注册表单,在那里用户可以上传他的照片。现在我想将该照片保存在解决方案文件夹或他的驱动器中。 - Ssasidhar
3个回答

24

您可以在表单中放置一个按钮,并使用以下代码创建其点击事件处理程序:

private void buttonGetFile_Click(object sender, EventArgs e)
{
    OpenFileDialog dialog = new OpenFileDialog();
    dialog.Filter = "Text files | *.txt"; // file types, that will be allowed to upload
    dialog.Multiselect = false; // allow/deny user to upload more than one file at a time
    if (dialog.ShowDialog() == DialogResult.OK) // if user clicked OK
    {
        String path = dialog.FileName; // get name of file
        using (StreamReader reader = new StreamReader(new FileStream(path, FileMode.Open), new UTF8Encoding())) // do anything you want, e.g. read it
        {
                // ...
        }
    }
}

-1

不是有效的URL。 - JT4U

-2

请参考此教程获取原始的HTTP POST请求:

http://msdn.microsoft.com/en-us/library/debx8sh9.aspx

关于 .NET 的 WebClient 类的参考:

http://msdn.microsoft.com/en-us/library/system.net.webclient(v=vs.80).aspx

一个简单的HTTP POST请求可以像这样完成:
string Upload_File_Content = ...;
string Url = ...;

using (var Http_Client = new WebClient()) {
  var Post_Data = new NameValueCollection();
  Post_Data["upload_file"] = Upload_File_Content;

  var Response = Http_Client.UploadValues(Url,"POST",Post_Data);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接