
1将Image图像文件存入到数据库中
我们知道数据库里的Image类型的数据是"二进制数据",因此必须将图像文件转换成字节数组才能存入数据库中
要这里有关数据的 *** 作略写,我将一些代码段写成方法,方便直接调用
//根据文件名(完全路径)
public byte[] SetImageToByteArray(string fileName)
{
FileStream fs = new FileStream(fileName, FileModeOpen);
int streamLength = (int)fsLength;
byte[] image = new byte[streamLength];
fsRead(image, 0, streamLength);
fsClose();
return image;
}
//另外,在ASPNET中通过FileUpload控件得到的图像文件可以通过以下方法
public byte[] SetImageToByteArray(FileUpload FileUpload1)
{
Stream stream = FileUpload1PostedFileInputStream;
byte[] photo = new byte[FileUpload1PostedFileContentLength];
streamRead(photo, 0, FileUpload1PostedFileContentLength);
streamClose();
return photo;
}
2从SQL Server数据库读取Image类型的数据,并转换成bytes[]或Image图像文件
//要使用SqlDataReader要加载using SystemDataSqlClient命名空间
//将数据库中的Image类型转换成byte[]
public byte[] SetImage(SqlDataReader reader)
{
return (byte[])reader["Image"];//Image为数据库中存放Image类型字段
}
//将byte[]转换成Image图像类型
//加载以下命名空间using SystemDrawing;/using SystemIO;
using SystemDataSqlClient;/
public Image SetByteToImage(byte[] mybyte)
{
Image image;
MemoryStream mymemorystream = new MemoryStream(mybyte,0, mybyteLength);
image = ImageFromStream(mymemorystream);
return image;
}
//获取数据库里的代码(省略)
object ob = dataTableRows[0][""];
byte[] buff = ob as byte[];
if (ob == null)
{
//报错
return;
}
MemoryStream ms = new MemoryStream(buff, 0, buffLength, true);
Bitmap bt = BitmapFromStream(ms) as Bitmap;
if (bt == null)
{
//数据格式错误,请检查是否是
return;
}
msFlush();
msClose();
//把bt显示出来,比如 pictureBoxImage = bt;
你是说的是什么意思?
如果是自己整的byte[]数组的话,使用base64转换成字符串发送,然后接收到字符串后再用base64转换成byte数组就可以了,如果要使用URL传递的话,你再将字符串使用urlencoder转换成utf-8编码传送,接收到后在使用urldecoder转换成字符串再使用base64还原成byte数组就好了
如果是存在数据库的字节数据,你可以使用result的getBinaryStream("字段名")来获取inpustream流,然后使用IO *** 作将流存到字节数组中,最后去使用就是了!
以上就是关于怎么将图片转换成二进制,存入数据库,然后怎么读出来并显示全部的内容,包括:怎么将图片转换成二进制,存入数据库,然后怎么读出来并显示、图片已经以二进制流存储在数据库了,怎样把它从数据库获取显示在界面上啊、jsp 怎么获取服务器传回的字节型数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)