从C#提交表单中的文件

我有一个WinForms C#应用程序。 名为“browser”的表单上有一个WebBrowser控件。

我还有以下代码:

HtmlDocument doc = browser.Document; HtmlElement mForm = doc.GetElementById("TheFormId"); doc.GetElementById("Name").SetAttribute( "value", "Some Name" ); HtmlElement elFile = doc.GetElementById( "TheFile" ); elFile.Focus(); SendKeys.Send( "C:\\1.txt" ); mForm.InvokeMember( "submit" ); 

问题是它不提交文件。 如果我在相应的输入框中手动输入文件名 – 它可以工作。

环境:Win XP SP2,IE6,VS 2008

编辑:这解决了问题:

 SendKeys.Send( "C:\\1.txt" + "{ENTER}" ); 

我认为这可能会有所帮助:

C#.NET使用HttpWebRequest将文件上载到Web表单

您的

元素是否具有enctype =“multipart / form-data”属性? 您需要它来上传表单中的文件。

这解决了这个问题:

 SendKeys.Send( "C:\\1.txt" + "{ENTER}" );