在Winforms应用程序中,我有一个登录到站点的webbrowser控件。 现在我想以编程方式下载一张图片(只能在登录该网站时下载)。
那么如何告诉我的webbrowser控件下载图像,即。 http://www.example.com/image.jpg,并将其保存在某处?
答案 0 :(得分:3)
如果您不想将文件直接保存到硬盘驱动器,可以将其下载到流中。 e.g。
WebClient wc = new WebClient();
byte[] bytes = wc.DownloadData("http://www.example.com/image.jpg");
Bitmap b = new Bitmap(new MemoryStream(bytes));
如果您希望将其保存到硬盘中,可以调用Bitmap.Save()
方法。 e.g。
b.Save("bitmap.jpg");
答案 1 :(得分:0)
我猜你不能使用WebBrowser默默地这样做。不要忘记它最后是一个IE实例。你可以做的是:导航到ImageURL,然后调用ShowSaveAsDialog(),它将向用户显示另存为对话框以保存图像:
WebBrowser wb = new WebBrowseR();
wb.Navigate("ImageURL");
wb.ShowSaveAsDialog();
更好的解决方案是使用WebClient获取图像
System.Net.WebClient wc = new System.Net.WebClient();
wc.Credentials = new System.Net.NetworkCredential("username", "password"); //Authenticates to the website - Call it only if the image url needs authentication first
wc.DownloadFile("imageURL", "downloadedImage.jpg"); //Downloads the imageURL to the local file downloadedImage.jpg