Asp.net把图片存入数据库和使用文件流来读取显示
2011-09-08 23:25
951 查看
一、数据库存储图片类型有以下几种方式:
1、将图片装换为二进制数值(byte[])
byte [] fileData=this.FileUpload1.FileBytes;
2、根据路径将文件装换为二进制数组
private byte[] returnbyte(string strpath)
{
//以二进制方式读文件
FileStream fsMyfile = new FileStream(strpath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
//创建一个二进制数据流读入器,和打开的文件关联
BinaryReader brMyfile = new BinaryReader(fsMyfile);
//把文件指针重新定位到文件的开始
brMyfile.BaseStream.Seek(0, SeekOrigin.Begin);
byte[] bytes = brMyfile.ReadBytes(Convert.ToInt32(fsMyfile.Length.ToString()));
//关闭以上的new的各个对象
brMyfile.Close();
return bytes;
}
3、Image类型得到二进制数组
public static byte[] Getbyte(Image img)
{
MemoryStream stream = new MemoryStream();
img.Save(stream, ImageFormat.Jpeg); //Image.FromFile(Path).Save(stream, ImageFormat.Jpeg); ;
byte[] mydata = new byte[stream.Length];
mydata = stream.ToArray();
stream.Close();
return mydata;
}
二、图片的显示
读取image类型的数据并显示在网页上的方式如下
1、直接返回image类型
private System.Drawing.Image GetImageDataFromDB()
{
string sql = "select Picture from TPicture where ID=1";
string strconn = System.Configuration.ConfigurationManager.ConnectionStrings["Conn"].ToString();
SqlConnection conn = new SqlConnection(strconn);
SqlCommand cmd = new SqlCommand(sql, conn);
conn.Open();
byte[] filedata = (byte[])cmd.ExecuteScalar();
conn.Close();
System.IO.MemoryStream ms = new MemoryStream(filedata);
System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
return img;
}
2、利用页面输出来显示图片
页面ShowImage.aspx(Page_Load)方法
protected void Page_Load(object sender, EventArgs e)
{
string sql = "select Picture from TPicture";
string strconn = System.Configuration.ConfigurationManager.ConnectionStrings["Conn"].ToString();
SqlConnection conn = new SqlConnection(strconn);
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataTable dt = new DataTable();
da.Fill(dt);
byte[] logoimg = (byte[])dt.Rows[0]["Picture"];
if (logoimg.Length > 0)
{
System.Drawing.Image img;
MemoryStream ms = new MemoryStream(logoimg);
Response.Clear();
Response.ContentType = "image/gif";
Response.OutputStream.Write(logoimg, 0, logoimg.Length);
Response.End();
}
}
图片路径写为:<img src="ShowImage.aspx" />
图片在数据库中的类型设置为image类型
示例:
SqlConnection conn = new SqlConnection(strconn);
conn.Open();
string sql = "insert into TPicture(Picture) values(@Picture)";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlParameter para = new SqlParameter("@Picture", SqlDbType.Image);
//para.Value = FileUpload1.FileBytes;
para.Value = Getbyte(null);//字节数组
cmd.Parameters.Add(para);
cmd.ExecuteNonQuery();
1、将图片装换为二进制数值(byte[])
byte [] fileData=this.FileUpload1.FileBytes;
2、根据路径将文件装换为二进制数组
private byte[] returnbyte(string strpath)
{
//以二进制方式读文件
FileStream fsMyfile = new FileStream(strpath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
//创建一个二进制数据流读入器,和打开的文件关联
BinaryReader brMyfile = new BinaryReader(fsMyfile);
//把文件指针重新定位到文件的开始
brMyfile.BaseStream.Seek(0, SeekOrigin.Begin);
byte[] bytes = brMyfile.ReadBytes(Convert.ToInt32(fsMyfile.Length.ToString()));
//关闭以上的new的各个对象
brMyfile.Close();
return bytes;
}
3、Image类型得到二进制数组
public static byte[] Getbyte(Image img)
{
MemoryStream stream = new MemoryStream();
img.Save(stream, ImageFormat.Jpeg); //Image.FromFile(Path).Save(stream, ImageFormat.Jpeg); ;
byte[] mydata = new byte[stream.Length];
mydata = stream.ToArray();
stream.Close();
return mydata;
}
二、图片的显示
读取image类型的数据并显示在网页上的方式如下
1、直接返回image类型
private System.Drawing.Image GetImageDataFromDB()
{
string sql = "select Picture from TPicture where ID=1";
string strconn = System.Configuration.ConfigurationManager.ConnectionStrings["Conn"].ToString();
SqlConnection conn = new SqlConnection(strconn);
SqlCommand cmd = new SqlCommand(sql, conn);
conn.Open();
byte[] filedata = (byte[])cmd.ExecuteScalar();
conn.Close();
System.IO.MemoryStream ms = new MemoryStream(filedata);
System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
return img;
}
2、利用页面输出来显示图片
页面ShowImage.aspx(Page_Load)方法
protected void Page_Load(object sender, EventArgs e)
{
string sql = "select Picture from TPicture";
string strconn = System.Configuration.ConfigurationManager.ConnectionStrings["Conn"].ToString();
SqlConnection conn = new SqlConnection(strconn);
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataTable dt = new DataTable();
da.Fill(dt);
byte[] logoimg = (byte[])dt.Rows[0]["Picture"];
if (logoimg.Length > 0)
{
System.Drawing.Image img;
MemoryStream ms = new MemoryStream(logoimg);
Response.Clear();
Response.ContentType = "image/gif";
Response.OutputStream.Write(logoimg, 0, logoimg.Length);
Response.End();
}
}
图片路径写为:<img src="ShowImage.aspx" />
图片在数据库中的类型设置为image类型
示例:
SqlConnection conn = new SqlConnection(strconn);
conn.Open();
string sql = "insert into TPicture(Picture) values(@Picture)";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlParameter para = new SqlParameter("@Picture", SqlDbType.Image);
//para.Value = FileUpload1.FileBytes;
para.Value = Getbyte(null);//字节数组
cmd.Parameters.Add(para);
cmd.ExecuteNonQuery();
相关文章推荐
- asp.net中将图片或文件存入数据库并读取显示在image控件中
- ASP.NET把图片存入数据库和使用文件流读取显示(转)
- ASP.NET把图片存入数据库和使用文件流读取显示(转)
- 使用asp.net将图片上传并存入SqlServer中,然后从SqlServer中读取并显示出来
- asp.net FileUpload 控件上传文件 以二进制的形式存入数据库并将图片显示出来
- 使用asp.net将图片上传并存入SqlServer中,然后从SqlServer中读取并显示出来
- 使用asp.net将图片上传并存入SqlServer中,然后从SqlServer中读取并显示出来
- 使用asp.net将图片上传并存入SqlServer中,然后从SqlServer中读取并显示出来
- ASP.net:上传图片以二进制插入到数据库,且读取显示
- 如何读取EXCEL 表格文件并使他在WEB网页上显示(使用ASP.NET)
- ASP.NET 上传图片至数据库并读取图片显示
- Asp.net 中图片存储数据库以及页面读取显示通用方法详解-附源码下载
- Mongodb学习笔记三、使用asp.net在Mongodb中存储和读取图片文件
- Asp.net 2.0(C#)图片存储到数据库和从数据库读取显示
- asp.net(c#)从数据库里读取图片并显示到页面
- ASP.NET 上传图片至数据库并读取图片显示
- 将图片插入数据库并使用asp.net读取出来的正确方法
- ASP.NET 上传图片至数据库并读取图片显示
- ASP.NET 上传图片至数据库并读取图片显示--二进制流方式