关于web项目中的图片上传、并显示问题
2015-01-05 20:51
573 查看
一、数据库存储
直接把图片的二进制码存到数据库
参考blog:
http://blog.csdn.net/hope2jiang/article/details/590733
直接存图片在mysql上面有两点好处:
比较容易做取重,就是相同的图片只存一份.
最重要备份使用数据库的备份方式简单.
容易管理,去掉无用的图片等.
缺点:
不适合超大量存储,数据的存储越大,恢复越麻烦
当然一般还是需要前端做更多的物理缓存,而不是靠mysql来直接输出.
还是看需求,如果图片是小图片,像论坛使用的,并且需要注重他的优点的可以使用,至于量没有具体的,你要想想如果数据库遇到问题,它的重做和迁移是否方便的问题.其实如果不是特殊情况一般存在数据库里都不是好的选择.平衡他的优缺点.
二、webRoot下存储
利用上床组件把图片上传到web项目下,再存储图片的相对路径到数据库表中,需生成一个新的不会重复的图片名
缺点:显而易见重新部署项目前需要重新把已上传的图片备份,待部署成功后拷贝到web项目下
三、web项目外存储
顾名思义,把图片上传到web目录外
1.建立存放图片的目录和web项目下一目录之间的联系
例如:Linux系统下,首先把图片上传到项目外一目录
然后把此目录挂载到项目内某一目录下 mount --bind 实际存放图片目录 项目内某一目录
然后把上传图片的相对路径存储到数据库表中
最后在项目中直接访问这个URL获取图片
注意:第一存放图片的目录需有上传权限;
第二在重新部署时,undeploy前先解除挂载 umount 实际存放图片目录
项目内某一目录
待项目上传成功后再重新建立挂载,否则在undeploy时可能丢失已上传的图片
缺点:每次部署前后要进行挂载,解挂载操作,易误操作丢失资源
2.配置虚拟路径
例如使用tomcat时:
首先把图片上传到项目外一目录下
然后在tomcat中配置一个虚拟路径指向上传目录命名为 "/fileUpload" (在/conf/server.xml下配置 Context即可)
然后把上传图片的相对路径存储到数据库表中
再在程序中通过访问这个虚拟路径 "/fileUpload" + 数据库中存储的相对URL 来获取文件资源
(其实相当于在tomcat下重新启动了一个web项目,然后通过访问此web项目下的图片资源,
这样其实也可以通过 http://ip:port/webProject/ resourse)
直接把图片的二进制码存到数据库
参考blog:
http://blog.csdn.net/hope2jiang/article/details/590733
直接存图片在mysql上面有两点好处:
比较容易做取重,就是相同的图片只存一份.
最重要备份使用数据库的备份方式简单.
容易管理,去掉无用的图片等.
缺点:
不适合超大量存储,数据的存储越大,恢复越麻烦
当然一般还是需要前端做更多的物理缓存,而不是靠mysql来直接输出.
还是看需求,如果图片是小图片,像论坛使用的,并且需要注重他的优点的可以使用,至于量没有具体的,你要想想如果数据库遇到问题,它的重做和迁移是否方便的问题.其实如果不是特殊情况一般存在数据库里都不是好的选择.平衡他的优缺点.
二、webRoot下存储
利用上床组件把图片上传到web项目下,再存储图片的相对路径到数据库表中,需生成一个新的不会重复的图片名
缺点:显而易见重新部署项目前需要重新把已上传的图片备份,待部署成功后拷贝到web项目下
三、web项目外存储
顾名思义,把图片上传到web目录外
1.建立存放图片的目录和web项目下一目录之间的联系
例如:Linux系统下,首先把图片上传到项目外一目录
然后把此目录挂载到项目内某一目录下 mount --bind 实际存放图片目录 项目内某一目录
然后把上传图片的相对路径存储到数据库表中
最后在项目中直接访问这个URL获取图片
注意:第一存放图片的目录需有上传权限;
第二在重新部署时,undeploy前先解除挂载 umount 实际存放图片目录
项目内某一目录
待项目上传成功后再重新建立挂载,否则在undeploy时可能丢失已上传的图片
缺点:每次部署前后要进行挂载,解挂载操作,易误操作丢失资源
2.配置虚拟路径
例如使用tomcat时:
首先把图片上传到项目外一目录下
然后在tomcat中配置一个虚拟路径指向上传目录命名为 "/fileUpload" (在/conf/server.xml下配置 Context即可)
然后把上传图片的相对路径存储到数据库表中
再在程序中通过访问这个虚拟路径 "/fileUpload" + 数据库中存储的相对URL 来获取文件资源
(其实相当于在tomcat下重新启动了一个web项目,然后通过访问此web项目下的图片资源,
这样其实也可以通过 http://ip:port/webProject/ resourse)
相关文章推荐
- 关于web项目中的图片上传、并显示问题
- 关于web项目中的图片上传、并在前端显示问题(tomcat中配置文件上传虚拟路径)
- 关于intellij14的web项目导入lib丢失以及上传资源图片等无法访问的问题
- 关于项目中的图片上传、并显示问题
- 关于webview上传文件(图片)遇到的问题
- 关于webview的各种问题,webview中的点击事件,上传图片问题
- 关于在eclipse开发web时鼠标移动到图片上显示文字问题
- 关于phpcms上传图片成功,后台图片无法显示的问题
- Web 项目图片不显示问题
- 关于百度world 编辑器改变上传图片的保存路径图片不显示的问题
- 关于《.net中多个图片并排循环排列显示的问题》[WEB学习示例]
- javaWeb开发中关于eclipse等ide重新部署或重启项目等原因造成上传文件丢失问题解决方案
- 关于SSH项目整合Fckeditor上传图片问题
- 关于项目中上传图片时图片尺寸和大小的判断问题
- webpack打包项目教程(还是遇到了打包后背景图片不显示的深坑以及html中的img不显示的问题,爬了一天多才豁然开朗)
- 关于Web项目里的给表单验证控件添加结束时间不得小于开始时间的验证方法,日期转换和前台显示格式之间,还有JSON取日期数据格式转换成标准日期格式的问题
- 关于eWebEditor突破上传图片大小限制的问题
- 关于kindeditor编辑器批量上传图片不显示添加图片按钮的问题
- 关于ajaxfileupload.js一些问题和上传图片就立即显示图片功能
- 关于mschart控件在mvc项目中的webform里面显示不出图片的问题