图片上传怎样防止文件名重名?
往数据库里添加记录每添加一条就要上传一个图片如果图片巨多肯定有重名现象存在?那怎么办?是不是要用if语句,具体怎么加呢?
大家看看在我的后台代码里应该怎样添加?谢谢
    protected void Button1_Click(object sender, EventArgs e)
    {                filename = FileUpload1.FileName.ToString();
                string filepath = Server.MapPath("~/client/");
                FileUpload1.SaveAs(filepath + "\\" + filename);
                Socut.Data.ExecuteNonQuery("INSERT INTO wzw_client (wzw_img) VALUES ('" + filename + "')");
                Response.Redirect("admin_clientadd.aspx");    }

解决方案 »

  1.   

    一般来说说文上传后根据日期重新生成一个名字来保存!
                string filename = FileUpload1.PostedFile.FileName;  //取得文件名
                int i = filename.Length;
                filename = filename.Remove(0, i - 4);
                string s = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString();
                 string  d = Server.MapPath("../images/upload/") + s + filename;    //设置文件名
                FileUpload1.PostedFile.SaveAs(d);
      

  2.   

    filename = filename + DateTime.Now.ToString();
    或者加上点别的随机数什么的。
      

  3.   

    1. 文件足够多,上传以后根据Guid值进行重命名
    2. 也可以用日期(精确到毫秒)进行重命名
      

  4.   

     if (FileUpload1.HasFile) 
      {
         //你上传的图片已存在请重命名 
      }
      

  5.   


    protected void btnUpload_Click(object sender, EventArgs e)
        {
            if (upload1.HasFile)
            {
                HttpPostedFile file = upload1.PostedFile;
                string extension = Path.GetExtension(file.FileName);
                string fileName = DateTime.Now.ToString("yyyyMMddhhmmss") + extension;
                string path = Server.MapPath("uploads");
                string savePath = Path.Combine(path, fileName);
                //Response.Write(savePath);
                string imagePath = "uploads/" + fileName;
                file.SaveAs(savePath);
                if (extension.Equals(".bmp") || extension.Equals(".jpg") || extension.Equals(".gif"))
                {
                    Image1.ImageUrl = imagePath;
                }
            }
        }重新命名成yyyyMMddhhmmss+后缀名的文件就行了。