首页 新闻 会员 周边 捐助

图片存进数据库

0
悬赏园豆:10 [已解决问题] 解决于 2008-11-18 12:32

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

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

这样一来  重复劳动很严重

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

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

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

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

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

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

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

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

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

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

 

 

 

平淡无奇_LKC的主页 平淡无奇_LKC | 初学一级 | 园豆:190
提问于:2008-11-16 22:52
< >
分享
最佳答案
0

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

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

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

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

你的几个问题的回答:

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

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

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

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

丁学 | 专家六级 |园豆:18730 | 2008-11-17 08:08
其他回答(2)
0

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

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

Anders Liu | 园豆:230 (菜鸟二级) | 2008-11-17 10:20
0

你可以把你的图片放到一个专门的站点下,想必你们的图片数量也会很大的,希望你最好把图片归类放到不同的文件夹里,这样读取的时候相对会好很多。

金鱼 | 园豆:1090 (小虾三级) | 2008-11-17 12:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册