免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7512 | 回复: 9
打印 上一主题 下一主题

请问c语言怎么把一个图片存到mysql数据库中啊? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-10-28 16:36 |只看该作者 |倒序浏览

  1. FILE *fd = fopen("d:\\tmp.bmp", "rb");
  2. fseek(fd, 0, SEEK_END);
  3. int fileSize = ftell(fd);
  4. rewind(fd);

  5. byte *buf = (byte*)malloc(fileSize * sizeof(byte));
  6. fread(buf, sizeof(byte), fileSize, fd);


  7. fd = fopen("d:\\new.bmp", "w");
  8. fwrite(buf, sizeof(byte), fileSize, fd);
复制代码
往数据库中存图片的话,请问我这种方式对吗?

是不是把buf字符串存到一个BLOB型的字段中就行了?

为什么重新写入的图片new.bmp的大小只有12k,并且图片打不开,而源图片文件大小为14k

论坛徽章:
0
2 [报告]
发表于 2011-10-28 16:39 |只看该作者
存到数据库中,本身就是一个坏主意

论坛徽章:
0
3 [报告]
发表于 2011-10-28 16:46 |只看该作者
。。。

先帮帮我解答了问题  再说好坏吧

论坛徽章:
0
4 [报告]
发表于 2011-10-28 16:46 |只看该作者
mysql 可以直接如同其他字段一样操作

oracle 有其他方法 比如 LOB READ 或者   dbms_lob

论坛徽章:
0
5 [报告]
发表于 2011-10-28 16:56 |只看该作者
我想问的是,存入一个图片到数据库的话,是不是以二进制的形式把图片读入到一个字节缓冲中,然后把该缓冲写到数据库相应的字段中就可以了?

具体的数据库插入操作不用关心。

论坛徽章:
0
6 [报告]
发表于 2011-10-28 17:17 |只看该作者
我想问的是,存入一个图片到数据库的话,是不是以二进制的形式把图片读入到一个字节缓冲中,然后把该缓冲写 ...
bw_0927 发表于 2011-10-28 16:56



应该是吧,

论坛徽章:
0
7 [报告]
发表于 2011-10-28 17:46 |只看该作者
怎么把读出的字节缓冲在网络上发送出去啊,里面有些不可见字符,而现在我这边的网络传输接口是字符型的

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
8 [报告]
发表于 2011-10-28 17:55 |只看该作者
往数据库中存图片的话,请问我这种方式对吗?

是不是把buf字符串存到一个BLOB型的字段中就行了?

为什 ...
bw_0927 发表于 2011-10-28 16:36


fopen(..., "wb");
貌似要被解毒专家鄙视的, 你是不是看老谭的书的............网络发送, 貌似只能转义了。。。。。。。。。。

论坛徽章:
0
9 [报告]
发表于 2011-10-28 19:16 |只看该作者
为什么会被鄙视啊?  难道不符合哪个规范吗?


请问,怎么把图片的字节流(含不可见字符)通过网络发出去,并存到服务器上的数据库中啊?

我找了半天,发现了个base64编码,貌似可以试试,不知道对不对?
还请大虾指点一下迷津啊!!

论坛徽章:
12
寅虎
日期:2013-12-04 20:37:4915-16赛季CBA联赛之广东
日期:2017-08-22 19:23:1215-16赛季CBA联赛之上海
日期:2016-06-18 23:05:05操作系统版块每日发帖之星
日期:2016-06-06 06:20:00操作系统版块每日发帖之星
日期:2016-06-05 06:20:00操作系统版块每日发帖之星
日期:2016-06-03 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之巴勒斯坦
日期:2015-02-10 21:38:08卯兔
日期:2014-10-31 20:42:23申猴
日期:2014-06-11 17:15:10处女座
日期:2014-05-22 09:00:1815-16赛季CBA联赛之广夏
日期:2017-09-25 23:37:46
10 [报告]
发表于 2011-10-28 20:07 |只看该作者
我想问的是,存入一个图片到数据库的话,是不是以二进制的形式把图片读入到一个字节缓冲中,然后把该缓冲写 ...
bw_0927 发表于 2011-10-28 16:56


是的。不过保存的时候要用专门针对二进制的函数,具体你查一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP