首页 新闻 会员 周边

Asp.net中如何从数据库某字段中查找筛选出图片<img>标记,并让图片显示在网页上?

0
[已解决问题] 解决于 2010-09-03 08:42

Asp.net中如何从数据库某字段中查找筛选出图片<img>标记,并让图片显示在网页上。打个比方说:比如现在我有一数据表,表中有一字段"content",类型 varchar,该字段是用来放新闻内容的(内容数据中包含图片代码),现在的问题就是在asp.net中如何在该字段的一大堆杂乱的数据中,把含的图片代码(即:含如<img src="***">的标记代码)给提取出来,并且在前台用控件绑定,实现这些图片的显示。

大致情况就是这样的,请高手指教哈。请附上代码说明(最好是使用正则)。谢谢了~~~~

xin_0623的主页 xin_0623 | 初学一级 | 园豆:120
提问于:2010-09-01 18:22
< >
分享
最佳答案
0

建议楼上说的不错,你可以用正则解决,以前用的工具库有相关的需求,给你两个函数,你复制到VS里看看。

        #region 匹配<img src="" />中的图片路径实际链接
        /// <summary>
        /// 匹配<img src="" />中的图片路径实际链接
        /// </summary>
        /// <param name="ImgString">字符串</param>
        /// <param name="imgHttp"></param>
        /// <returns></returns>
        public static string GetImg(string ImgString, string imgHttp)
        {
            string MatchVale = "";
            string Reg = @"src=.+\.(bmp|jpg|gif|png|)";
            foreach (Match m in Regex.Matches(ImgString.ToLower(), Reg))
            {
                MatchVale += (m.Value).ToLower().Trim().Replace("src=", "");
            }
            if (MatchVale.IndexOf(".net") != -1 || MatchVale.IndexOf(".com") != -1 || MatchVale.IndexOf(".org") != -1 || MatchVale.IndexOf(".cn") != -1 || MatchVale.IndexOf(".cc") != -1 || MatchVale.IndexOf(".info") != -1 || MatchVale.IndexOf(".biz") != -1 || MatchVale.IndexOf(".tv") != -1)

                return (MatchVale);
            else
                return (imgHttp + MatchVale);
        }
        #endregion

        #region  匹配页面的图片地址
        /// <summary>
        /// 匹配页面的图片地址
        /// </summary>
        /// <param name="HtmlCode">html源码</param>
        /// <param name="imgHttp">要补充的http://路径信息</param>
        /// <returns></returns>
        public static string GetImgSrc(string HtmlCode, string imgHttp)
        {
            string MatchVale = "";
            string Reg = @"<img.+?>";

            foreach (Match m in Regex.Matches(HtmlCode.ToLower(), Reg))
            {
                MatchVale += GetImg((m.Value).ToLower().Trim(), imgHttp) + "|";
            }

            return MatchVale;
        }
        #endregion

Astar | 高人七级 |园豆:40805 | 2010-09-01 20:41
GetImgSrc 使用这个方法。
Astar | 园豆:40805 (高人七级) | 2010-09-01 20:41
其他回答(4)
0

很明显楼主的这种想法不成熟,我建议图片另外建一张表,里面存放图片的相关属性

如按照楼主的做法,我提出一下几点

1。用sql对字段content进行字符串处理,我想性能会大大的降低

2。如content中有多个<img src="***">这个标记的话,你该如何取

3。你现在是把该条记录的所有图片存放在这个字段中,我现在要取每条记录的倒数第二张图片,你又该如何取

like%'远远'% | 园豆:635 (小虾三级) | 2010-09-01 18:54
0

一般如果文本字段里有图片的话,用在线编辑器就可以轻松搞定,在线编辑器有很多,你随便选一个,就是类似word一样的编辑器,在编辑器里你插入的时候它会生成<img>标签插入到表中,显示的时候也能正常显示,不要用你做额外的工作

yixin841210 | 园豆:1138 (小虾三级) | 2010-09-01 20:26
0

用HTML编辑器插入,什么内容都可以插入的呀

前台不用任何处理,显示的绑定:<%#Eval("Content")%> 或者 span 的id:  spanid.InnerHTML=row["Content"].ToString();

jowo | 园豆:2834 (老鸟四级) | 2010-09-02 09:00
0

楼主,能把Asp.net中如何从数据库某字段中查找筛选出图片&lt;img&gt;标记,并让图片显示在网页上?的前台和后台的文件发给我一下吗,谢谢!!

邮箱:121312845@qq.com

MrCai | 园豆:202 (菜鸟二级) | 2012-12-22 18:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册