public static void DelImg(string tabid,string csid)
        {
            string urlstr = "";
            MySqlConnection constr = new MySqlConnection("server=localhost;User Id=user;password=psd;Database=data;CharSet=utf8");
            DataSet dss = new DataSet();
            string sqll = "select urls from imgurl where " + tabid + " = " + csid;
            MySqlCommand cmd = new MySqlCommand(sqll, constr);
            constr.Open();
            MySqlDataReader dr = cmd.ExecuteReader();
            if (!dr.Read())
                return;
            dr.Read();
            urlstr = dr["urls"].ToString();
            dr.Close();
            constr.Close();
            string[] list = urlstr.Split('∮');
            for (int i = 0; i < list.Length; i++)
            {
                string sql = "select * from imgurl where MATCH (urls) AGAINST ('+" + list[i] + "' in boolean mode)";
                MySqlDataAdapter da = new MySqlDataAdapter(sql, constr);
                da.Fill(dss);
                if (dss.Tables[0].Rows.Count == 1)
                {
                    string delFile =HttpContext.Current.Server.MapPath("~/") + list[i].Replace("/","\\");
                    File.Delete(delFile);
                }
            }
        }
 
用户在发表文章时有时要上传图片,服务器的图片越来越多,
我想实现在删除文章的同时,检查文章中的图片是否被其他文章链接。
如果没有就删掉。如果同时也被其他文章链接了,就暂时不能删。
我在写入数据库时把一篇文章所用的img的url放在一个单独的数据库里了。
现在我想到的办法就是以上代码。
先查到该文章的所用img的URL,
然后如果多图就sblit分开,
然后根据每个url到数据库在搜索,判断有没有其他文章也在引用这个图片,如果没有才删。
可是这样岂不是要操作数据库N次吗?
所以想问大家有没有简单的办法。