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次吗?
所以想问大家有没有简单的办法。
一个图就XXX KB,一个硬盘最起码75G
怎么会有资源问题
要删的话,就要把图像提炼出来
添加,图像和文章引用对象
select url form img where id on in(select id form news )
删除