我正在使用C#下载方法下载图像,图像被下载,但它没有使用它的空或我们说腐败的图像无法打开。
问题是图片有不寻常的链接:
http://www.example.com/image1.php
而不是像其他人一样:
http://www.example.com/img1.jpg
那么如何下载这样的图像,如果我使用浏览器转到图像并单击“保存”作为其下载正常。
代码:
System.Net.WebClient client = new System.Net.WebClient();
picname = "testingimage";
client.DownloadFile(imagepath, filepath + picname + ".jpg");
让我知道是否有其他方法可以做到这一点。
图片网址:
<img src="http://www.abx.com/img1.php" alt="http://www.abx.com/img1.php" class="decoded">
答案 0 :(得分:0)
听起来PHP脚本正在检查预期返回类型的请求标头,即默认为HTML,但如果请求要求图像,则它将仅返回图像。虽然我之前没有使用client.DownloadFile
,所以不确定如何设置标头。但值得研究一下。
答案 1 :(得分:0)
我解决了这个问题,但是使用了一条很长的线路来创建另一个线路,使用WEBBROWSER
控件登录GOTO页面并保存图像:
保存图片的代码:
IHTMLDocument2 doc = (IHTMLDocument2)webBrowser1.Document.DomDocument;
IHTMLControlRange imgRange = (IHTMLControlRange)((HTMLBody)doc.body).createControlRange();
string imagename = string.Empty;
try
{
foreach (IHTMLImgElement img in doc.images)
{
imgRange.add((IHTMLControlElement)img);
imgRange.execCommand("Copy", false, null);
using (Bitmap bmp = (Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap))
{
bmp.Save(@"c:\testImage\TestPic.jpg");
}
imagename = img.nameProp;
break;
}
}
catch (System.Exception aaa)
{
}