[MVC]如何删除文章内容中的图片
1.实现代码
if (!string.IsNullOrWhiteSpace(entity.Content)) { var immgList = TextHelper.GetImgUrlList(entity.Content); var mainUrl = (Request.Url.ToString()).Replace(Request.RawUrl, ""); foreach (var item in immgList) { var filepath = item.Replace(mainUrl, "~"); FileHelper.DeleteFiles(filepath); } }
2.解析:
TextHelper.GetImgUrlList 提取文本中的图片地址列表
mainUrl 文章内容中的图片地址是绝对地址,需要进行转换为相对路径
FileHelper.DeleteFiles 根据相对路径删除文件
TextHelper.GetImgUrlList代码
/// <summary> /// 取出文本中的图片地址 /// </summary> /// <param name="HTMLStr"></param> /// <returns></returns> public static string GetImgUrl(string HTMLStr) { string str = string.Empty; //string sPattern = @"^<img\s+[^>]*>"; Regex r = new Regex(@"<img\s+[^>]*\s*src\s*=\s*([']?)(?<url>\S+)'?[^>]*>",RegexOptions.Compiled); Match m = r.Match(HTMLStr.ToLower()); if (m.Success) str = m.Result("${url}"); return str; }