2009-11-08 1 views
2

У меня есть приложение WinForms C#. В форме с именем «браузер» есть элемент управления WebBrowser.Отправить файл в форме от C#

Также у меня есть следующий код:

  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

Edit: Это устранило проблему:

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

Вы должны написать ответ на свой вопрос, а затем пометить его как принято. – okutane

+1

отверстие sendkeys исправлено в IE8. –

+0

@Dmitry - спасибо за подсказку. Сделаю это. – Oleg

ответ

0

Это устранило проблему:

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

Есть ли у вашего <form> элемент в ENCTYPE = "многокомпонентные/form-данные" атрибут? Это необходимо для загрузки файлов в форму.

+0

Привет, Мэтт, спасибо за ответ. Да, эта форма имеет enctype = "multipart/form-data" А также я могу отправить файл вручную. – Oleg

1

Я думаю, что это может помочь:

C# .NET Uploading file to a web form using HttpWebRequest

+0

Спасибо за подсказку, но как я могу подключить WebClient и WebBrowser? Обратите внимание, что в этой форме есть еще 20 полей, и я должен отправить их всем + файлам. И показать результат представления пользователю в элементе управления WebBrowser. – Oleg

+0

, если вы используете firefox, установите надстройку под названием Live HTTP headers (http://livehttpheaders.mozdev.org/). Затем заполните эту форму руками, запустите это дополнение, отправьте форму, и вы увидите все заголовки, которые были отправлены. Теперь вы можете сделать то же самое в коде. Если вам нужна дополнительная помощь, сообщите мне, у меня есть несколько примеров на C#. –

Смежные вопросы