数据库存图片,是存图片名称?还是存图片路径??
问题如上,之所以会有这么个疑问,目前图片是在本地服务器上存的,但是以后若是业务规模扩大,那图片肯定是要迁移到云存储服务上的,那个时候图片路径会改动,我怕原有网站图片显示,全部挂掉...。
不知道,大家存图片到数据库的时候,是存图片名称(test.jpg
) 还是 存图片路径(一般都是 /Data/UploadImage/2017-04-14/test.jpg
)??
存图片名称的话,以后,路径改动,直接修改图片路径的代码就解决了。
存图片路径的话,以后,路径改动,要更新数据库中所有图片的路径才能够解决。
不知道你们在上传图片后,保存图片的时候,是怎样保存的呢??
习惯了
路径、名称、后缀 分开存,然后有一个字段是完整url,即把以上所有连起来
从你的问题看,既然刚开始就在数据库存储图片的相对路径就好了,以后要存第三方图片服务的话,到时就写脚本批量替换成第三方的图片地址就可以了,如果想一步到位的话,现在就可以使用第三方的图片服务的
这个一般都是在自己的数据库中存储图片路径,要是图片多了,得占用多少空间呀。真实图片可以存储在第三方平台,如七牛等。实现思路是:先上传到七牛云服务器,获取到存储的路劲,然后保存到自己数据库中。
存图片现在常规做法是:图片资源统一上传至图片服务器,然后保存图片路径,如果数据量非常大,可以根据Hash值进行分表存储。使用在项目中的话,全部走images.xxx.com/路径.png 的方式加载图片。另,如果不使用图片服务器,走专门的域名的话,可以在网站根目录简历一个resource资源文件夹,全部存放到这里,所有使用路径的地方都使用“/”,从根目录找起,方便迁移,也不会出路径问题。
如果存自己服务器的话,数据库存相对路径! 如果迁移了或者换了域名也不重要,直接更改域名即可,其它都不用管,如果你存全路径,换域名IP 那就惨了!
如果存第三方都会返回一个ID给你直接存这个ID就好了,到时候请求这个ID拿到你想要的图片即可!
如果是本地服务器上的图片,那么就存相对与你项目根目录的路径(如/upload/20170413/xxxx.png),这样有两个好处:1.你前端引用的时候可以直接用(前提是你的nginx之类的配置根就是你项目路径)。2.在你项目迁移的时候能够直接迁移,不会有大问题。
如果是第三方的地址,那么就直接存完整的地址了(比如http://img.xxx.xx.qiniu.com/x...),第三方的你干预不了什么,也不会有地址迁移的说法。