手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >.Net下二进制形式的文件(图片)的存储与读取详细解析
.Net下二进制形式的文件(图片)的存储与读取详细解析
摘要:.Net下图片的常见存储与读取凡是有以下几种:存储图片:以二进制的形式存储图片时,要把数据库中的字段设置为Image数据类型(SQLServ...

.Net下图片的常见存储与读取凡是有以下几种:

存储图片:以二进制的形式存储图片时,要把数据库中的字段设置为Image数据类型(SQL Server),存储的数据是Byte[].

1.参数是图片路径:返回Byte[]类型:

复制代码 代码如下:

public byte[] GetPictureData(string imagepath)

{

////根据图片文件的路径使用文件流打开,并保存为byte[]

FileStream fs = new FileStream(imagepath, FileMode.Open);//可以是其他重载方法

byte[] byData = new byte[fs.Length];

fs.Read(byData, 0, byData.Length);

fs.Close();

return byData;

}

2.参数类型是Image对象,返回Byte[]类型:

复制代码 代码如下:

public byte[] PhotoImageInsert(System.Drawing.Image imgPhoto)

{

//将Image转换成流数据,并保存为byte[]

MemoryStream mstream = new MemoryStream();

imgPhoto.Save(mstream, System.Drawing.Imaging.ImageFormat.Bmp);

byte[] byData = new Byte[mstream.Length];

mstream.Position = 0;

mstream.Read(byData, 0, byData.Length);

mstream.Close();

return byData;

}

好了,这样通过上面的方法就可以把图片转换成Byte[]对象,然后就把这个对象保存到数据库中去就实现了把图片的二进制格式保存到数据库中去了。下面我就谈谈如何把数据库中的图片读取出来,实际上这是一个相反的过程。

读取图片:把相应的字段转换成Byte[]即:Byte[] bt=(Byte[])XXXX

1.参数是Byte[]类型,返回值是Image对象:

复制代码 代码如下:

public System.Drawing.Image ReturnPhoto(byte[] streamByte)

{

System.IO.MemoryStream ms = new System.IO.MemoryStream(streamByte);

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

return img;

}

2.参数是Byte[] 类型,没有返回值,这是针对asp.net中把图片从输出到网页上(Response.BinaryWrite)

复制代码 代码如下:

public void WritePhoto(byte[] streamByte)

{

// Response.ContentType 的默认值为默认值为“text/html”

Response.ContentType = "image/GIF";

//图片输出的类型有: image/GIF image/JPEG

Response.BinaryWrite(streamByte);

}

补充:

针对Response.ContentType的值,除了针对图片的类型外,还有其他的类型:

复制代码 代码如下:

Response.ContentType = "application/msword";

Response.ContentType = "application/x-shockwave-flash";

Response.ContentType = "application/vnd.ms-excel";

另外可以针对不同的格式,用不同的输出类型以适合不同的类型:

复制代码 代码如下:

switch (dataread("document_type"))

{

case "doc":

Response.ContentType = "application/msword";

case "swf":

Response.ContentType = "application/x-shockwave-flash";

case "xls":

Response.ContentType = "application/vnd.ms-excel";

case "gif":

Response.ContentType = "image/gif";

case "Jpg":

Response.ContentType = "image/jpeg";

}

一些相关的东西,可以作为参考

复制代码 代码如下:

Image image= GetImageFromClipboard();//实现从剪切板获取图像的功能

System.IO.MemoryStream stream = new System.IO.MemoryStream();

System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter

= new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); formatter.Serialize(stream, image);

FileStream fs=new FileStream("xx",FileMode.Open,FileAccess.Write);

fs.Write(stream.ToArray(),0,stream.ToArray().Length);

【.Net下二进制形式的文件(图片)的存储与读取详细解析】相关文章:

relaxlife.net发布一个自己开发的中文分词程序

ASP.Net下载大文件的实现方法

ASP.NET MVC中将控制器分离到类库的实现

ASP.Net 图片存入数据库的实现代码

asp.net中包含文件的代码及使用方法

.net制作的抽餐厅和游戏装备的小程序

asp.net(c#)判断远程图片是否存在

asp.net使用ODP即oracle连接方式的的防注入登录验证程序

在ASP.NET中实现多文件上传的方法

在.NET中利用XMLHTTP下载文件的代码

精品推荐
分类导航