从网络下载图片到本地

从网络下载图片到本地
/// <summary>
/// 保存图片从web
/// </summary>
/// <param name="imgUrl">图片网页链接</param>
/// <param name="path">保存路径</param>
/// <param name="fileName">保存文件名</param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public static string SaveImageFromWeb(string imgUrl, string path, string fileName)
{if (path.Equals(""))throw new Exception("未指定保存文件的路径");string imgName = imgUrl.ToString().Substring(imgUrl.ToString().LastIndexOf("/") + 1);string defaultType = ".jpg";string[] imgTypes = new string[] { ".jpg", ".jpeg", ".png", ".gif", ".bmp" };string imgType = imgUrl.ToString().Substring(imgUrl.ToString().LastIndexOf("."));string imgPath = "";foreach (string it in imgTypes){if (imgType.ToLower().Equals(it))break;if (it.Equals(".bmp"))imgType = defaultType;}HttpWebRequest request = (HttpWebRequest)WebRequest.Create(imgUrl);request.UserAgent = "Mozilla/6.0 (MSIE 6.0; Windows NT 5.1; Natas.Robot)";request.Timeout = 3000;WebResponse response = request.GetResponse();Stream stream = response.GetResponseStream();if (response.ContentType.ToLower().StartsWith("image/")){byte[] arrayByte = new byte[1024];int imgLong = (int)response.ContentLength;int l = 0;if (fileName == "")fileName = imgName;FileStream fso = new FileStream(path + fileName + imgType, FileMode.Create);while (l < imgLong){int i = stream.Read(arrayByte, 0, 1024);fso.Write(arrayByte, 0, i);l += i;}fso.Close();stream.Close();response.Close();imgPath = fileName + imgType;return imgPath;}else{return "";}
}