• Asp.net 删除新闻同时删除图片设计思想


    我的广告单元,有空点一下哦,谢谢!

    最近遇到一个问题,在做新闻发布功能的时候会出现图文混排的现象,但当删除新闻的时候并没有同时删除该新闻中的图片,因为大多数的HTML编辑器都仅仅支持上传图片,好的能够支持浏览服务器图片,但效果都不佳,那么有什么方法能够取出新闻中的图片,然后可以根据这些图片做“文章”呢?

    通过资料搜集,自己总结出一套思想,仅供参考,如下:

    首先设计新闻表(我只挑重点字段),id、title、Details、PublishTime、PublishMan、NewsImg(这个字段就是记录该条新闻中的图片的,字段长度要长一些,因为记录的是图片的完整url,当然你可以仅仅保存图片的名字,但这种情况在某种情况下会出现图片不能显示的后果)

    好数据库设计好了,然后就是怎么去图片了,我这里用正则表达式来取。

    //返回新闻中的所有图片,用|隔开
        public string MyGetImgUrl(string text)
        {
            StringBuilder str = new StringBuilder();
            string pat = @"<img\s+[^>]*\s*src\s*=\s*([']?)(?<url>\S+)'?[^>]*>";
            Regex r = new Regex(pat, RegexOptions.Compiled);
            Match m = r.Match(text.ToLower());
            while (m.Success)
            {
                Group g = m.Groups[2];
                 str.Append(g).Append("|");//g就是图片的完整url
                m = m.NextMatch();
            }
            return str.ToString().Replace("\"", "").TrimEnd('|');
        }
        //插入新闻
        protected void Button1_Click(object sender, EventArgs e)
        {
            CJ_DBOperater.CJ.sqlconn_str = "server=localhost;database=PicLinkToNews;uid=sa;pwd=ovenjackchain";
            string str = "insert into news values('{0}','{1}','{2}','{3}','{4}')";
    
           //TxtContent.Text就是获得HTML编辑器的内容,他是HTML格式的
            CJ_DBOperater.CJ.SQL_ExecuteNonQuery(string.Format(str, TxtTitle.Text, TxtContent.Text, DateTime.Now.ToString(), "admin", MyGetImgUrl(this.TxtContent.Text)));
             //插入成功
    
        }

    到这里就OK了,我们已经插入了一条新闻,并且把这条新闻里的图片URL取出放到NewsImgs字段里面了。

    那接下来的事情就好办了吧。

    例如,我想做一个flash图片滚动效果,图片就是新闻图片,点击图片可以跳转到该条新闻,那么这个的重点就是如何取出图片。

    很简单了,因为我们已经把图片放到NewsImgs字段里面了,只需要sql语句就完全可以了。

    DataTable dt = CJ_DBOperater.CJ.SQL_ReturnDataTable("select top 4 NewsImgs from news where NewsImgs!=''");
    for (int i = 0; i < dt.Rows.Count; i++)
    {
    if (dt.Rows[i][0].ToString().Contains('|'))
    Response.Write(dt.Rows[i][0].ToString().Substring(0, dt.Rows[i][0].ToString().IndexOf('|')) + "<br />");
    else
    Response.Write(dt.Rows[i][0].ToString()+"<br />");
    }

    //这里是每条新闻只取第一个图片(如果新闻中有图片的话)

    OK了。

    图片都取出来了,那么删除新闻同时删除图片就OK了。

    当然若您仅仅做删除新闻同时删除图片这个功能是不需要NewsImgs字段也完全可以的。

    本案例源码下载:http://download.csdn.net/source/2119062

  • 相关阅读:
    luoguP1558 色板游戏
    Tyvj1147
    Tyvj1147
    带修改的莫队(日常普及知识)
    带修改的莫队(日常普及知识)
    luoguP1903 数颜色(通过一道题认识带修改莫队)
    luoguP1903 数颜色(通过一道题认识带修改莫队)
    108.虚函数表原理(获取虚函数)
    104.virtual虚函数多态与异构数据结构
    106.多态与虚函数
  • 原文地址:https://www.cnblogs.com/qidian10/p/2143794.html
Copyright © 2020-2023  润新知