将图片以二进制形式保存到数据库并以二进制形式读取到硬盘

首先添加一个html控件FileUpload并将其转换为服务器断控件(runat="server"),再添加两个Button按钮。

protected void Button2_Click(object sender, EventArgs e)
    {
        //把图片保存成数据库二进制形式
        Stream ImageStream;
        string Path = FileUpload1.PostedFile.FileName;//文件名称
        int Size = FileUpload1.PostedFile.ContentLength;//文件大小
        string Type = FileUpload1.PostedFile.ContentType;//文件类型
        ImageStream = FileUpload1.PostedFile.InputStream;
        byte[] Content = new byte[Size];
        int Status = ImageStream.Read(Content, 0, Size);

        SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
        SqlCommand comm = new SqlCommand("insert into testimage(Username,Image,Path,Type)values(@UserName,@Image,@Path,@Type)", conn);

        comm.CommandType = CommandType.Text;
        comm.Parameters.Add("@UserName", SqlDbType.VarChar, 255).Value = txtUserName.Text;
        comm.Parameters.Add("@Image", SqlDbType.Image).Value = Content;
        comm.Parameters.Add("@Path", SqlDbType.VarChar, 255).Value = Path;
        comm.Parameters.Add("@Type", SqlDbType.VarChar, 255).Value = Type;

        conn.Open();
        comm.ExecuteNonQuery();
        conn.Close();
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        //把数据库二进制图片存到硬盘中
        string connstr = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
        SqlConnection conn = new SqlConnection(connstr);
        string sql = "select * from testimage";
        SqlCommand cmd = new SqlCommand(sql, conn);
        conn.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        while (dr.Read())
        {
            byte[] bytes = (byte[])dr["Image"];
            FileStream fs = new FileStream(@"c:\" + dr["UserID"] + ".jpg", FileMode.Create, FileAccess.Write);
            fs.Write(bytes, 0, bytes.Length);
            fs.Flush();
            fs.Close();
        }
        dr.Close();
        conn.Close();

    }

posted @ 2008-05-22 16:11  草市江田  阅读(544)  评论(0)    收藏  举报