zoukankan
html css js c++ java
.Net下二进制形式的文件(图片)的存储与读取 [ZT]
.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
"
;
}
查看全文
相关阅读:
liunx下mysql数据库使用之三范式,关系模型设计注意项,安装目录结构
Liunx系统学习一,liunx系统的目录结构及含义
liunx环境下的mysql数据库配置文件my.conf内的参数含义
linux下打开chm文件的方法
java的四舍五入算法
【JVM】jvm垃圾回收器相关垃圾回收算法
Linux下MySQL数据库常用基本操作 一
liunx环境下安装mysql数据库
加权平均
Host绑定
原文地址:https://www.cnblogs.com/RobotTech/p/1056138.html
最新文章
【leetcode】 Unique Path ||(easy)
【leetcode】 Unique Path(easy)
【leetcode】triangle(easy)
【hadoop2.6.0】安装+例子运行
【linux】配置SSH免密码登陆
【linux】jdk安装
【linux】学习7
【leetcode】Decode Ways(medium)
答读者问(29):三个在校学生有关在校学习、考研、编程语言、未来工作的疑问及答复
impdp时卡住,DW等待library cache lock
热门文章
Atitit.故障排除系列-----apache 不能启动的排除
Spring技术内幕:SpringIOC原理学习总结
C++研究之在开发中你可能没有考虑到的两个性能优化
redis(四))——多实例化——实现主从配置
linux c 操作utmp 和 wtmp 文件接口
Java中Void占位符的測试及个人理解
Java IO之简单输入输出
路由器的原理及其配置(三)
XSS漏洞解析(二)
springboot 配置Ehcache
Copyright © 2011-2022 走看看