300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > ASP.NET把图片存入数据库和使用文件流读取显示(转)

ASP.NET把图片存入数据库和使用文件流读取显示(转)

时间:2022-06-16 18:27:16

相关推荐

ASP.NET把图片存入数据库和使用文件流读取显示(转)

存储图片类型数据有以下几种方式:

1.将图片转换为二进制数组(byte[])

byte[]fileData=this.FileUpload1.FileBytes; 复制代码

2.根据路径将文件转换为2进制数组

代码 publicbyte[]returnbyte(stringstrpath)

{

//以二进制方式读文件

FileStreamfsMyfile=newFileStream(strpath,FileMode.OpenOrCreate,FileAccess.ReadWrite);

//创建一个二进制数据流读入器,和打开的文件关联

BinaryReaderbrMyfile=newBinaryReader(fsMyfile);

//把文件指针重新定位到文件的开始

brMyfile.BaseStream.Seek(0,SeekOrigin.Begin);

byte[]bytes=brMyfile.ReadBytes(Convert.ToInt32(fsMyfile.Length.ToString()));

//关闭以上new的各个对象

brMyfile.Close();

returnbytes;

}

复制代码

3img 类型得到二进制数组

代码 publicstaticbyte[]Getbyte(Imageimg)

{

MemoryStreamstream=newMemoryStream();

img.Save(stream,ImageFormat.Jpeg);

byte[]mydata=newbyte[stream.Length];

mydata=stream.ToArray();

stream.Close();

returnmydata;

}

复制代码

读取image类型的数据并显示在网页上的方式如下:

1。直接返回image 类型

代码 privateSystem.Drawing.ImagegetImageDataFromOracle()

{

stringsql="selectIMGDATAfromt_imgwhereimgID=100";

stringstrconn=System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionStringForOracle"].ToString();

OracleConnectionoraConn=newOracleConnection(strconn);

OracleCommandoraComm=newOracleCommand(sql,oraConn);

oraConn.Open();

byte[]fileData=(byte[])oraComm.ExecuteScalar();

oraConn.Close();

System.IO.MemoryStreamms=newSystem.IO.MemoryStream(fileData);

System.Drawing.Imageimg=System.Drawing.Image.FromStream(ms);

returnimg;

}

复制代码

2.利用页面输入来显示图片

页面ImageShow.aspx (Page_Load方法)

代码 protectedvoidPage_Load(objectsender,EventArgse)

{

byte[]b_logoImg=(byte[])dt_channelImg.Rows[0]["LogoImage"];//得到byte[]数组,这里只是举个例子

if(b_logoImg.Length>0)

{

System.Drawing.ImagelogoImg;

MemoryStreamms=newMemoryStream(b_logoImg);

Response.Clear();

Response.ContentType="image/gif";

Response.OutputStream.Write(b_logoImg,0,b_logoImg.Length);

Response.End();

}

}

复制代码

图片路径写成为:<img src = "ImageShow.aspx" />

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。