现在的位置: 首页 > 综合 > 正文

图片 上传 与 删除

2013年09月03日 ⁄ 综合 ⁄ 共 2721字 ⁄ 字号 评论关闭

一.上传图片
    public string  picUpload()
    {

        if (this.FIleUploadPic.HasFile)//检查是否有文件
        {
            string fullFileName = this.FIleUploadPic.PostedFile.FileName;                           //文件路径名
            string fileName = fullFileName.Substring(fullFileName.LastIndexOf("\\") + 1);   //图片名称
            string type = fullFileName.Substring(fullFileName.LastIndexOf(".") + 1);        //图片格式

            if (type == "jpg" || type == "JPG" || type == "gif" || type == "GIF" || type == "BMP" || type == "bmp") //判断是否为图片类型
            {
                if (this.FIleUploadPic.PostedFile.ContentLength > 20 * 1024)
                {
                    Response.Write("<script>alert('上传图片必须小于20k!');</script>");
                  
                }
                else
                {
                    string path = HttpContext.Current.Request.MapPath("~/admin/images/solutionPic/");//获取上传文件的网站目录路径
                    this.FIleUploadPic.SaveAs(path + fileName);//存储文件到磁盘
                    return "~/admin/images/solutionPic/" + fileName;

                    //Response.Write("<script>alert('图片上传成功!');</script>");//提示

                    //this.imgPicture.Src = "~/admin/images/solutionPic/" + fileName;//显示图片
                }

            }
            else
            {
                Response.Write("<script>alert('非图片类型,不允许上传!');</script>");
            }
         }
         else
         {
                Response.Write("<script>alert('必须指定文件!');</script>");
         }
         return "";
    }

二.删除图片

解决问题思路如下:

1.在上传文件的时候,你会将文件保存到网站中的某个文件夹下,同时你会到数据库中保存上传这个文件的记录。建议你在数据库的这个表中添加记录这个文件所在路径的一个字段。这个字段所添加的数据就是你在保存上传的文件的路径(最好是相对路径,别用绝对路径)。

2.在删除数据的时候,先读取这条记录所保存的文件路径,然后通过File.Delete(Server.MapPath(文件URL))方法将文件删除,在把这个数据库记录删除。这样就可以了。

public static void ExecuteSqlTran()
    {
        using (OleDbConnection conn = new OleDbConnection(connectionString))//连接字符串
        {
            conn.Open();
            OleDbCommand cmd = new OleDbCommand();
            cmd.Connection = conn;
            OleDbTransaction tx = conn.BeginTransaction();
            cmd.Transaction = tx;
            int I = 0;
            try
            {

                cmd.CommandText = "delete from XXX where ...";//sql语句
                I = cmd.ExecuteNonQuery();
                if (I > 0)
                {
                    ////////////////
                    try
                    {
                        File.Delete(Server.MapPath(文件URL));
                        tx.Commit();
                    }
                    catch
                    {
                        tx.Rollback();
                    }
                    //////////这块的TRY CATCH 可以不用
                }
                else
                {
                    tx.Rollback();
                }
            }
            catch (System.Data.OleDb.OleDbException E)
            {
                tx.Rollback();
                throw new Exception(E.Message);
            }

        }
    }

抱歉!评论已关闭.