Asp.net 刪除新聞同時刪除圖片設計思想

來源:互聯網
上載者:User
我的廣告單元,有空點一下哦,謝謝!

最近遇到一個問題,在做新聞發布功能的時候會出現圖文混排的現象,但當刪除新聞的時候並沒有同時刪除該新聞中的圖片,因為大多數的HTML編輯器都僅僅支援上傳圖片,好的能夠支援瀏覽伺服器圖片,但效果都不佳,那麼有什麼方法能夠取出新聞中的圖片,然後可以根據這些圖片做“文章”呢?

通過資料搜集,自己總結出一套思想,僅供參考,如下:

首先設計新聞表(我只挑重點欄位),id、title、Details、PublishTime、PublishMan、NewsImg(這個欄位就是記錄該條新聞中的圖片的,欄位長度要長一些,因為記錄的是圖片的完整url,當然你可以僅僅儲存圖片的名字,但這種情況在某種情況下會出現圖片不能顯示的後果)

好資料庫設計好了,然後就是怎麼去圖片了,我這裡用Regex來取。

//返回新聞中的所有圖片,用|隔開    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 />");elseResponse.Write(dt.Rows[i][0].ToString()+"<br />");}

//這裡是每條新聞只取第一個圖片(如果新聞中有圖片的話)

OK了。

圖片都取出來了,那麼刪除新聞同時刪除圖片就OK了。

當然若您僅僅做刪除新聞同時刪除圖片這個功能是不需要NewsImgs欄位也完全可以的。

本案例源碼下載:http://download.csdn.net/source/2119062

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.