为了账号安全,请及时绑定邮箱和手机立即绑定

图片存进数据库

/ 猿问

图片存进数据库

隔江千里 2018-11-14 05:02:45

我们现在有几个网站 都在推广 有一些图片 每个网站上都上传

本来是把图片存进文件夹  数据库记录路径 每个网站都用一个独立的数据库

这样一来  重复劳动很严重

如果把图片存进SQL 数据库  这样 多个网站 就可以共用那些图片了

有一些疑问不明白 请老师们解答下

1、SQL 的 image 类型 似乎不能存储很大的图片 我有一个97K 的 上传时就会出错

2、循环输出图片 怎么做?

response.ContentType = myDataReader["imgtype"].ToString();
Response.BinaryWrite((byte[])myDataReader["imgcontent"]);

 这样输出的话 把原来网页上的东西都覆盖了

3、图片存进数据库 数据库大小的增长是怎么样呢?100K 的图片 会占用多大的数据库空间?

4、比如,一个网页要输出一百张图片  , 从数据库中读出 图片 速度怎么样?

希望做过这方面的老师们 给小弟解惑 谢谢

如果不存进数据库,有什么别的方法避免重复上传图片呢?


查看完整描述

2 回答

?
大话西游666

可以设置单独的图片服务器(就是新建一个站点),只需要把图片上传到这个站点并生成URL,就可以所有站共用啊

或者不新加站点,你只上传到其中一个站,其他站通过URL来引用图片也是可以的

惟一的问题是其他站如何获取到这个图片的URL:你上面既然可以把图片放到一个数据库然后其他网站调用此数据库,那么当然也可以把图片的URL存放到数据库里,其他站调用这个URL,这样就不用重复上传图片了

个人认为,这种做法比放图片到数据库效率要高出不少,处理起来也简单

你的几个问题的回答:

1、image类型可以存放大图片,image类型并不是行内存储,不受行大小限制,你的97K肯定没有问题,应该是哪里写错了,调试一下吧

2、不能直接修改Response.ContentType,这样将修改当前页面的类型,考虑建立单独文件来生成图片给页面调用

3、100K图片存放到数据库,数据库会增长100K多一点点,图片大小按实际大小存放,系统处理图片的开销会占用很少一部分字节,这个不成问题

4、比直接IO要慢不少,数据库压力也会变得比较大而影响其他正常数据读取,所以建议使用我上面的做法


查看完整回答
反对 回复 2018-11-16
?
冉冉说

image表示的是二进制映像,用来放图片完全没问题(但要把图片文件当作纯粹的二进制文件对待)。image列最多可存放2G的数据。

你遇到的错误很可能是上传时发生的错误。


查看完整回答
反对 回复 2018-11-16
  • 2 回答
  • 0 关注
  • 215 浏览
我要回答

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信