注册 登录
编程论坛 ASP.NET技术论坛

aspnet图片上传问题

助人为乐 发布于 2008-11-02 12:16, 964 次点击
是这样的: 用户上传图片后 (突然死机 不小心关闭页面 断电)那么这个图片没有写进数据库 而确实传到文件夹 他就是无用的了 如何做到(突然死机 不小心关闭页面 断电)后图片被从文件夹删除。已经上上传了并写入数据库了 如何做到删除记录同时删除文件夹里的图片 ,我是用dataguid绑定数据的。谢谢各位老大 给我个完美的答复 最好附上实例。本人初学请给与支持。
2 回复
#2
铲铲2008-11-02 21:56
这种情况应该极少出现,但是也不可避免,现在比较好的办法就是定期维护图片文件夹和数据库。
就是
第一步,获得全部图片文件,然后查询数据库,将存在图片但不存在数据条目的那部分图片删除。
第二步,获的数据库全部条目,然后遍历图片文件,将数据库中存在条目,但不存在文件的那部分条目适当修改(更换默认图片,以保全这条数据,不至于因为图片不存在而删除)(或删除)。

这个过程你可以写一段代码,放到后台由管理员定期调用。或者想办法制作为一个自动周期性的操作(如Windows服务),设定一段时间间隔让其自动运行。
#3
助人为乐2008-11-03 12:41
谢谢
public void pic()
    {

  string dirPath;
                dirPath = Server.MapPath("upfile");
                DirectoryInfo adminDir = new DirectoryInfo(dirPath);
                foreach (FileInfo del in adminDir.GetFiles())
                {


                    if (del.Extension.ToLower() == ".jpg" || del.Extension.ToLower() == ".gif" || del.Extension.ToLower() == ".png")
                    {
                        Session["abc"] = del;
                        Response.Write(Session["abc"]);
                        SqlConnection conn = Class1.DB();
                        conn.Open();
                        SqlCommand cmd1 = new SqlCommand("select count(*) from  new1 where picpath='" + Session["picpath"] + "'", conn);
                        int pic1 = Convert.ToInt32(cmd1.ExecuteScalar());
                        conn.Close();
                        if (pic1>0)
                        {
                            Response.Write("数据存在");
                        }
                        else
                        {
                            del.Delete();
                        }

                     }
               
               
                  }
            }
我这样写了是可以删除 我刷新页面的时候 文件夹里图片全没了
  if (!IsPostBack)
        {
            pic();
        }
1