日期:2014-05-18  浏览次数:20749 次

在实际项目中图片的存取问题,有经验的来帮忙解答一下
最近发现在数据库中对blob字段进行读写还是挺麻烦的,文件容量一旦大些很容易溢出,不知道这是不是大部分项目中数据库中都存储图片的路径而把图片还是放在硬盘上的原因。如果是专门的相册网站也是这样存储的吗?这样图片数量一多管理起来就变得很麻烦,如果类似博客中相册的话按每个用户名建个目录放他的图片,有数万个用户不就有数万个文件夹,可是又不可能全放在一个目录下,所以一直不知道实际中是如何来解决的,有经验的来说下实用的方法吧。另外一个就是如果不打算把图片放在工程目录下的话,直接img src=“系统绝对路径”是打不开的,我按网上的写了一个javabean来专门按流来读取硬盘上某目录下的图片,可是这样的图片到了网页上能看到,可是不能另存为,因为它的路径是一个action?跟参数,但是在实际浏览网页的时候,看到的大部分图片都是可以save的,也就是不是采用这种方法,那么只能把图片放在项目目录下才是比较好的解决方式吗?我如果要把图片放在硬盘上别的目录下有什么好的解决办法吗?实际项目经验太少,所以一些问题不知道怎样解决才是比较合理的,如果有实际经验的朋友麻烦来说下在你曾经的项目中或者听说的项目中是怎样解决这样的问题的,多谢!

------解决方案--------------------
图片确实放在Blob里面不太好,通常的做法还是放在硬盘上.大型的网站应该有专门的一组机器作为图片服务器,把图片资源读取和文本资源读取区分开,这样效率较高.图片服务器做磁阵映射,就像访问本地硬盘一样访问.或者图片服务器也部署成一个WEB应用下的虚拟路径,然后通过读取相对路径的方式获取图片资源路径.