我们在C#WinForms应用程序中使用CefSharp(v37.0.0 NuGet包)。我们正在寻找一种方式(以编程方式)触发文件上传操作。如果可以的话,该怎么办? 了一些额外的想法:使用CefSharp进行文件上传
- 我们有一个页面上的文件上传对话框,在这里,通常情况下,用户会选择一个文件。这工作正常,我们通过IDialogHandler拦截对话调用并提供文件。
- 现在我们要触发相同的对话框并预先设置文件。当对话框从“ExecuteScriptAsync”调用成功打开时,我们无法预先选择文件。可能是由于以下原因:how to create/initialize the file object using file path html5
- 我们接下来的想法是让对话框正常打开并以编程方式发出点击事件,以便浏览器打开文件对话框(然后我们将通过IDialogHandler捕获并提供我们所需的文件) 。
- 尝试这种方法,我们的观察如下:
- 在用户操作(例如浏览器内部的按钮点击)后,我们可以通过编程方式“点击”文件输入按钮。
- 从通过ExecuteScriptAsync发起的调用做同样的事情,对话框(或IDialogHandler中的调用)不会出现。
这绝对做一个明显的方式 - 感谢指出了这一点耀西!我们现在用稍微不同的方式解决了它。我们让用户在html表单上点击我们最终的“保存”按钮。但在这种特殊情况下,我们打开“文件打开”对话框 - 这是因为它起源于用户操作 - 然后我们从C#中捕获并正确设置文件。接下来,我们再次从同一个C#事件处理函数中调用save函数,它将最终运行保存/上传逻辑。酷的东西JavaScript/.NET之间的这种紧密的交互。 – lichtalberich