如果要使用WebClient
,则必须从中提取标头信息WebClient.ResponseHeaders
。您必须先将其存储为字节数组,然后在获取文件信息后保存文件。
string url = @"http://redsox.tcs.auckland.ac.nz/CSS/CSService.svc/";
string saveLoc = @"/project1/home_image";
using (WebClient wc = new WebClient())
{
byte[] fileBytes = wc.DownloadData(url);
string fileType = wc.ResponseHeaders[HttpResponseHeader.ContentType];
if (fileType != null)
{
switch (fileType)
{
case "image/jpeg":
saveloc += ".jpg";
break;
case "image/gif":
saveloc += ".gif";
break;
case "image/png":
saveloc += ".png";
break;
default:
break;
}
System.IO.File.WriteAllBytes(saveloc, fileBytes);
}
}
如果可以的话,我喜欢我的扩展名是 3 个字母长……个人喜好。如果它不打扰您,您可以将整个switch
语句替换为:
saveloc += "." + fileType.Substring(fileType.IndexOf('/') + 1);
使代码更整洁一些。