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

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

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

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//返回新闻中的所有图片,用|隔开
    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语句就完全可以了。

 

1
2
3
4
5
6
7
8
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

posted @   jackchain  阅读(401)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示