using System; using System.IO; using System.Net; using System.Text.RegularExpressions; namespace Ant.Service.Utilities { /// /// 图片下载 /// public class ImageDown { public ImageDown() { } #region 私有方法 /// /// 获取图片标志 /// private string[] GetImgTag(string htmlStr) { Regex regObj = new Regex("", RegexOptions.Compiled | RegexOptions.IgnoreCase); string[] strAry = new string[regObj.Matches(htmlStr).Count]; int i = 0; foreach (Match matchItem in regObj.Matches(htmlStr)) { strAry[i] = GetImgUrl(matchItem.Value); i++; } return strAry; } /// /// 获取图片URL地址 /// private string GetImgUrl(string imgTagStr) { string str = ""; Regex regObj = new Regex("http://.+.(?:jpg|gif|bmp|png)", RegexOptions.Compiled | RegexOptions.IgnoreCase); foreach (Match matchItem in regObj.Matches(imgTagStr)) { str = matchItem.Value; } return str; } #endregion /// /// 下载图片到本地 /// /// HTML /// 路径 /// 年月 /// 日 public string SaveUrlPics(string strHTML, string path) { string nowym = DateTime.Now.ToString("yyyy-MM"); //当前年月 string nowdd = DateTime.Now.ToString("dd"); //当天号数 path = path + nowym + "/" + nowdd; if (!Directory.Exists(path)) Directory.CreateDirectory(path); string[] imgurlAry = GetImgTag(strHTML); try { for (int i = 0; i < imgurlAry.Length; i++) { string preStr = System.DateTime.Now.ToString() + "_"; preStr = preStr.Replace("-", ""); preStr = preStr.Replace(":", ""); preStr = preStr.Replace(" ", ""); WebClient wc = new WebClient(); wc.DownloadFile(imgurlAry[i], path + "/" + preStr + imgurlAry[i].Substring(imgurlAry[i].LastIndexOf("/") + 1)); } } catch (Exception ex) { return ex.Message; } return strHTML; } } }