首页 > 代码库 > 将文件以二进制的形式保存到数据库中
将文件以二进制的形式保存到数据库中
主要应用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();
}