📜  c# webbrowser 上传文件 - C# (1)

📅  最后修改于: 2023-12-03 14:39:44.566000             🧑  作者: Mango

C# webbrowser 上传文件

在 C# 的 Windows Forms 应用中,WebBrowser 控件是用于承载 Web 页面和展示 Web 内容的重要控件。在一些场景,我们需要通过 WebBrowser 控件进行文件上传。

本文将介绍如何在 C# 的 WebBrowser 控件中进行文件上传操作。

实现文件上传

文件上传通常需要使用 input 元素来进行。我们可以通过 WebBrowser 控件的 Document 属性来获取网页的文档对象并向其添加 input 元素来实现文件上传。

private void UploadFile(WebBrowser webBrowser, string filePath, string inputName)
{
    // 获取网页文档对象
    HtmlDocument doc = webBrowser.Document;
    
    // 创建 input 元素
    HtmlElement input = doc.CreateElement("input");
    input.SetAttribute("type", "file");
    input.SetAttribute("name", inputName);
    
    // 添加 input 元素到网页文档
    doc.Body.AppendChild(input);
    
    // 设置上传文件路径,并触发上传操作
    input.Focus();
    SendKeys.Send(filePath + "{ENTER}");
}
注意事项
  • 文件上传操作需要在 input 标签被渲染完成之后才能进行,因此需要等待 HTML 文档加载完成。
  • 需要注意 input 元素的 name 属性值,该值应与服务端接收文件的参数名一致。
  • 由于 WebBrowser 控件不支持 HTML5 的 File API,因此只能进行单个文件上传操作。
小结

本文介绍了如何在 C# 的 WebBrowser 控件中实现文件上传操作,同时也提到了一些需要注意的事项。通过简单的代码实现,我们可以在 Windows Forms 应用程序中完成 Web 页面中的文件上传功能。