public void Test() { var html = @"<img src=""http://karldu.cn/api/SysFile/Download?objectId=09f1f7cb-5b69-44e4-9a30-2eac785520a0"" alt=""image.png"">"; var list = HtmlUtil.GetHtmlImageUrlList(html); Assert.IsTrue(list != null && list.Count > 0); Assert.IsTrue(list[0] == "http://karldu.cn/api/SysFile/Download?objectId=09f1f7cb-5b69-44e4-9a30-2eac785520a0"); }
/// <summary> /// 转换Url为微信媒体Url /// </summary> /// <param name="htmlContent"></param> /// <returns></returns> public string ConvertLocalUrlToWeChatUrl(string htmlContent) { var picList = HtmlUtil.GetHtmlImageUrlList(htmlContent).Distinct(); if (!picList.IsEmpty()) { var dic = new Dictionary <string, string>(); // 替换url picList.Each(item => { var start = item.IndexOf("objectId=") + 9; var fileid = item.Substring(start, item.Length - start); var url = CreateData(fileid); dic.TryAdd(item, url); }); htmlContent = htmlContent.Replace(dic); } return(htmlContent); }
/// <summary> /// 转换微信素材地址为本地地址 /// </summary> /// <param name="htmlContent"></param> /// <returns></returns> public string ConvertWeChatUrlToLocalUrl(string htmlContent) { #region 更换data-src为src var imageTags = HtmlUtil.GetHtmlImagelList(htmlContent); if (!imageTags.IsEmpty()) { var dic = new Dictionary <string, string>(); // 替换url imageTags.Each(item => { dic.TryAdd(item, item.Replace("data-src", "src")); }); htmlContent = htmlContent.Replace(dic); } #endregion #region 更换地址为本地地址 var picList = HtmlUtil.GetHtmlImageUrlList(htmlContent).Distinct(); if (!picList.IsEmpty()) { var dic = new Dictionary <string, string>(); // 替换url picList.Each(item => { var identity = item.Split("/")[4]; var sql = "SELECT * FROM wechat_news_material WHERE media_url like concat('%', @url, '%')"; var data = Broker.Retrieve <wechat_news_material>(sql, new Dictionary <string, object>() { { "@url", identity } }); if (data != null) { dic.TryAdd(item, data.local_url); } }); htmlContent = htmlContent.Replace(dic); } #endregion return(htmlContent); }