我们在C#WinForms应用程序中使用CefSharp(v37.0.0 NuGet包)。我们正在寻找一种(以编程方式)触发文件上载操作的方法。如果有的话,怎么办呢? 还有一些额外的想法:
答案 0 :(得分:2)
通过ExecuteScriptAsync发起的呼叫执行相同操作,对话框(或IDialogHandler中的调用)不会出现。
这可能是由于适用于普通JavaScript的相同安全限制:Programmatically open upload file dialog in Chrome
我认为你需要:
Element.scrollIntoView()
Element.getBoundingClientRect()
答案 1 :(得分:2)
CefSharp示例项目中的文件NavigationActions
就是一个例子。
TempFileDialogHandler
将 public class TempFileDialogHandler : IDialogHandler
{
public bool OnFileDialog(IWebBrowser browserControl, IBrowser browser, CefFileDialogMode mode, string title, string defaultFilePath, List<string> acceptFilters, int selectedAcceptFilter, IFileDialogCallback callback)
{
callback.Continue(selectedAcceptFilter, new List<string> { Path.GetRandomFileName() });
return true;
}
}
替换为您的文件路径,然后将处理程序附加到浏览器,如下所示:
Path.GetRandomFileName()
答案 2 :(得分:-2)
我可能错了,但这也可以通过使用jquery文件上传器插件来实现,而不是自己动手。
Ajax上传 Uploadify