A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 霍世勇 中级黑马   /  2012-4-9 08:56  /  3490 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在数据库中图片存储的为什么是下面的东西:0xFFD8FFE000104A46494600010201012C012C0000FFED094C50686F746F73686F7020332E30003842494D03ED0A5265736F6C7574696F6E0000000010012C000000010001012C0000000100013842494D040D18465820476C6F62616C204C69676874696E6720416E676C650000000004000000783842494D041912465820476C6F62616C20416C74697475646500000000040000001E3842494D03F30B5072696E7420466C61677300000009000000000000000001003842494D040A0E436F7079726967687420466C6167000000000100003842494D2710144A6170616E657365205072696E7420466C616773000000000A000100000000000000023842494D03F517436F6C6F722048616C66746F6E652053657474696E677300000048002F66660001006C66660006000000000001002F6666000100A1999A0006000000000001003200000001005A000000……

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

4 个回复

倒序浏览
貌似,好像,数据库图片的存储是以16进制(或者……)的形式存储的,所以现实这东西

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
数据库存储图片用image类型,image类型是sqlserver用来存储二进制的,你可以将文件转换成二进制保存到这个数据列中。读取的时候,将二进制再转换成文件显示到页面或者程序中。

不过,一般开发中,照片等二进制的文件并不保存在数据库中。而是保存在服务器的特定目录中,然后在数据库中记录一下这个具体路径和文件名。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 张云静 于 2012-4-9 09:16 编辑

图片在数据库中是以字节型数组存储的,你发上去的都是字节流。有的会只显示存储的路径。说一下ASP.NET数据库图片存储过程的实现你可能会明白
首先需要获得图片的大小,可以使用intImageSize代码实现,返回图片的类型使用ContenType属性。
最重要的事就是取得Image Stream。
我们需要一个字节型数组来存储image 内容。读取整个图片可以使用Stream对象的Read方法来实现。Read(in byte[] buffer,int offset,int count)方法有三个参数。
buffer
字节数组。此方法返回时,该缓冲区包含指定的字符数组,该数组的 offset 和 (offset + count) 之间的值由从当前源中读取的字节替换。
offset
buffer 中的从零开始的字节偏移量,从此处开始存储从当前流中读取的数据。
count
要从当前流中最多读取的字节数。
然后读取图片的内容,intStatus = ImageStream.Read(ImageContent, 0, intImageSize)
下一步,我们要把这些内容存入到sql 表。我们将使用存储过程来完成插入图片类型和图片内容到sql 表。如果你浏览了上面的代码,你将会发现我们使用了sqldbtype.image的数据类型(datatype)。

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
千年等一回的好帖
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马