如何从 CefSharp 的下载处理程序中删除另存为对话框
How to remove Save As dialog from download handler in CefSharp
我想从 CefSharp 中删除 SaveAs 对话框并希望文件直接保存到指定的 location.Nothing 似乎可行请帮助 public void OnBeforeDownload(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem下载项目、IBeforeDownloadCallback 回调)
{
OnBeforeDownloadFired?.Invoke(this, downloadItem);
if (!callback.IsDisposed)
{
using (callback)
{
callback.Continue("C:/Users/Wissensquelle/Downloads/bhavansh.txt", showDialog: false);
}
}
}
I want to remove the SaveAs dialog from CefSharp and want the file to save directly to the specified location.
这是不可能的(开箱即用),如果是这样,这将是一个巨大的设计缺陷,会带来严重的安全问题。
另一方面,请看一下 DownloadHandler class,特别是 OnBeforeDownload
方法,但是您可以根据自己的喜好更改它(比较麻烦):
callback.Continue(downloadItem.SuggestedFileName, showDialog: true);
收件人:
callback.Continue(SOMEPATH, showDialog: false);
我的解决方案基于
https://github.com/cefsharp/CefSharp.MinimalExample
和
Getting HTML from Cefsharp Browser
我只是结合了这些。保存 CefSharp 浏览器实例的 html 内容如下:
browser = new ChromiumWebBrowser("www.google.com");
//
// .. etc etc
// ..
private async getSource()
{
string source = await browser.GetBrowser().MainFrame.GetSourceAsync();
string f = @"c:\temp\my.html";
StreamWriter wr = new StreamWriter(f, false, System.Text.Encoding.Default);
wr.Write(source);
wr.Close();
}
要对其进行测试,请使用上述事件,或滚动您自己的文件菜单:添加一个保存项。添加 Click 事件并使其异步。现在像这样调用 getSource() :
private async void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
await getSource();
}
我想从 CefSharp 中删除 SaveAs 对话框并希望文件直接保存到指定的 location.Nothing 似乎可行请帮助 public void OnBeforeDownload(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem下载项目、IBeforeDownloadCallback 回调) { OnBeforeDownloadFired?.Invoke(this, downloadItem);
if (!callback.IsDisposed)
{
using (callback)
{
callback.Continue("C:/Users/Wissensquelle/Downloads/bhavansh.txt", showDialog: false);
}
}
}
I want to remove the SaveAs dialog from CefSharp and want the file to save directly to the specified location.
这是不可能的(开箱即用),如果是这样,这将是一个巨大的设计缺陷,会带来严重的安全问题。
另一方面,请看一下 DownloadHandler class,特别是 OnBeforeDownload
方法,但是您可以根据自己的喜好更改它(比较麻烦):
callback.Continue(downloadItem.SuggestedFileName, showDialog: true);
收件人:
callback.Continue(SOMEPATH, showDialog: false);
我的解决方案基于
https://github.com/cefsharp/CefSharp.MinimalExample
和
Getting HTML from Cefsharp Browser
我只是结合了这些。保存 CefSharp 浏览器实例的 html 内容如下:
browser = new ChromiumWebBrowser("www.google.com");
//
// .. etc etc
// ..
private async getSource()
{
string source = await browser.GetBrowser().MainFrame.GetSourceAsync();
string f = @"c:\temp\my.html";
StreamWriter wr = new StreamWriter(f, false, System.Text.Encoding.Default);
wr.Write(source);
wr.Close();
}
要对其进行测试,请使用上述事件,或滚动您自己的文件菜单:添加一个保存项。添加 Click 事件并使其异步。现在像这样调用 getSource() :
private async void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
await getSource();
}