自动化WebBrowser.ShowSaveAsDialog()或替代方法

时间:2012-04-12 18:52:56

标签: c# webbrowser-control download webclient-download imagedownload

基本上我不想保存加载到webBrowser控件中的图像。我现在能够让它工作的唯一方法是显示另存为对话框。

有没有办法传递路径并使其自行保存? (隐藏我要求显示的对话框!)

还有另一种保存图像的方法吗?我似乎无法让文档流工作。我也尝试了webclient.filedownload(...),但收到错误302(“(302)Found Redirect。”)

DownloadFileAsync没有错误,只有一个空的jpeg文件?

文件始终是jpegs,但并不总是在同一位置。

1 个答案:

答案 0 :(得分:0)

您应该使用HttpWebRequest

它可以自动跟踪302。

var myHttpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.contoso.com"); 
//increase this number if there are more then one redirects. 
myHttpWebRequest.MaximumAutomaticRedirections = 1;
myHttpWebRequest.AllowAutoRedirect = true;
var myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();    

var buff = new byte[myHttpWebResponse.ContentLength];

// here you specify the path to the file. The path in this example is : image.jpg
// if you want to store it in the application root use:
// AppDomain.CurrentDomain.BaseDirectory + "\\image.jpg"
using (var sw = new BinaryWriter(File.Open("c:\\image.jpg", FileMode.OpenOrCreate)))
{
    using (var br = new BinaryReader (myHttpWebResponse.GetResponseStream ()))
    {
        br.Read(buff, 0, (int)myHttpWebResponse.ContentLength);
        sw.Write(buff);
    }            
}