可能是这个问题在过去被问过,但我已经搜索,但还没有找到它的解决方案。我怎样才能通过文件输入框使用C#中的浏览器上传文件?
我已经尝试了我发现的所有选项,但都是徒劳的。 SendKeys不起作用,因为它没有用文件路径填充文件输入框,即要上传。 由于没有可用的值属性,无法设置文件输入框“SetAttribute”值:
那就是所有。
如果我使用element.focus()它弹出“选择要上传的文件”对话框,现在我不知道如何以编程方式填充它,并在文件输入框中打开它。
我希望它自动完成,以便用户不必与应用程序进行交互。 应用程序应从给定的文件路径从硬盘中选择文件,并填写表单的其他字段,然后开始上传,全部使用Windows窗体应用程序中的浏览器控件。
找不到解决方案!
任何人都可以帮忙吗? (这是计算器我第一次的问题,因此,如果我做错什么,那么请指导,我的意思是,如果我不允许张贴这样的问题!)
下面是代码:
HtmlElementCollection heCollection = doc.GetElementsByTagName("input");
foreach (HtmlElement heSpan in heCollection)
{
string strType = heSpan.GetAttribute("type");
string strName = heSpan.GetAttribute("name");
if (strType.Equals("file") && strName.Equals("file"))
{
heSpan.Focus();
//heSpan.SetAttribute("value", "test.jpg");
SendKeys.Send("C:\\1.txt");
//heSpan.InnerText = "c:\\1.txt";
}
//Title for the attachment
if (strName.Equals("field_title"))
{
heSpan.InnerText = "1.txt";
}
}
当这段代码执行时,光标开始在精细输入框中闪烁(因为我设置了heSpan.focus()),但文件路径不显示在文件输入框中。 如果我执行 heSpan.InvokeMember(“click”); 它打开选择一个文件来上传对话框/弹出窗口,在那里我卡住了,因为我不知道如何动态地填充该弹出窗口,然后在文件输入框中插入文件路径。
由于这是您的第一个问题,请允许我提供一些建议。我会在问题的正文中解释你的问题,而不仅仅是在标题中。如果你只依赖标题,你的实际问题可能会丢失。我还建议你展示一些代码来说明你已经尝试了什么,以及为什么它不工作。 – psubsee2003
我已经添加了代码,并对我所尝试的内容进行了一些解释。可能现在它很清楚:/ – Yaaver
没有建议? – Yaaver