首页 > 代码库 > 将文件以二进制的形式保存到数据库中

将文件以二进制的形式保存到数据库中

主要应用HttpPostedFile类的InputStream属性、Stream类的read方法和Byte数据类型。首先获取上传数据文件的名称、大小和类型,建立一个访问客户端上传文件的对象HttpPostedFile和一个数据流对象Stream,然后使用数据流Stream对象将上传文件以二进制形式的数据写入Byte类型的数组中,最后将二进制数据保存的数据库中。

代码:
try
        {
            if (this.FileUpload1.PostedFile.FileName != "")
            {
                string ImgPath = FileUpload1.PostedFile.FileName;
                string ImgName = ImgPath.Substring(ImgPath.LastIndexOf("\\") + 1);
                string ImgExtend = ImgPath.Substring(ImgPath.LastIndexOf(".") + 1);
                int FileLen = this.FileUpload1.PostedFile.ContentLength;
                Byte[] FileData = http://www.mamicode.com/new Byte[FileLen];
                HttpPostedFile hp = FileUpload1.PostedFile;//创建访问客户端上传文件的对象
                Stream sr = hp.InputStream;//创建数据流对象
                sr.Read(FileData, 0, FileLen);
                SqlConnection con = new SqlConnection("server=(local);user id=sa;pwd=sa;database=data");
                con.Open();
                SqlCommand com = new SqlCommand("INSERT INTO table (name) VALUES (@imgdata)", con);
                com.Parameters.Add("@imgdata", SqlDbType.Image);
                com.Parameters["@imgdata"].Value = http://www.mamicode.com/FileData;
                com.ExecuteNonQuery();
                Label3.Text = "保存成功!";
            }
            else
            {
                Label3.Text = "请选择文件!";
            }
        }
        catch (Exception error)
        {
            Label3.Text = "处理失败!原因为:" + error.ToString();
        }