javaweb图片上传 tomcat重新部署 图片消失
来源:互联网 发布:网络赢钱游戏 编辑:程序博客网 时间:2024/04/26 04:09
最近在做一个Javaweb的项目,涉及到图片上传,并且需要将图片通过URL回显给JSP页面,在调试的时候发现,上传到tomcat的图片再重新部署之后就消失了。研究了半天发现才解决了。首先说一下,我为什么要将图片存放到tomcat服务器或者更直白点说是web工程目录下的原因:
项目中对于图片的处理在于用户上传比如自己的头像,上传后再查看时,就直接根据服务器的URL指定图片的位置去查看图片,通俗点就是jsp页面中的<img >标签的src属性的路径就直接指向服务器该图片存放的位置。鉴于这一点,所以将图片文件存放在了tomcat中,而不放在服务器磁盘文件系统中,这样前端JSP就可以直接通过URL访问到图片资源。
发现的问题:在调试的时候,我的开发环境十分通用,就是eclipse for jee ,服务器为tomcat7.0。在配置eclipse runtime服务器运行环境时,工程发布的位置选择的是直接将工程发布到tomcat的webapps目录下。配置过程如下:
1.在为eclipse添加到tomcat7.0服务器后,将服务器的工程全部remove掉,如下图:
remove all,然后右键clean一下,这时再open,如下图
在server locations下选择第二个,这时工程在ADD到服务器时就直接到了tomcat 的webapps目录下了。
遇到的问题:发现上传的图片在改动eclipse上的代码的时候,也就是重新部署后,tomcat下的webapps中的工程目录下的图片全部没有了,很奇怪,经过研究发现,原因如下:
我们在Java代码中上传图片时,图片的路径是通过代码
request.getSession().getServletContext().getRealPath("/img")
来获取路径的,而这句代码返回的路径是tomcat中webapps目录下的工程路径,图片就直接保存到了tomcat中。
当我们重新发布工程的时候,tomcat其实是先将原来的工程删掉,然后再将改动过的新的工程放上去。而改动过的新的工程师来自与我们eclipse的工作空间中的工程,这就也难怪了,因为我们是把图片直接上传到的tomcat服务器下,而不是放到工作空间的工程目录下,自然重新部署后图片就没了。
解决办法:
归根到底的原因就是因为
request.getSession().getServletContext().getRealPath("/img")
这句代码搞的鬼,所以在调试时,我们在Java代码中保存上传的图片位置时将图片的保存路径应该保存在eclipse工作空间的目录下,如:
String path = "E:\\program\\eclipse project\\Server\\WebContent\\img";
这样,图片在上传到该工作空间后,因为项目发生了改变,eclipse会再次发布工程,这时图片便会同步到tomcat服务器中,这时,我们前端jsp页面也就可以通过URL定位到图片了。
注意的地方:
归根到底这些问题其实还是因为我们是在调试的工程中,发布后肯定是不会出现这些问题的。因为你想想我们的web工程一般是发布到Linux下,发布了之后你的tomcat服务器只有关闭和打开,而不会对工程重新部署,自然也就不会出现这些问题。然后这也同时出现了另外一个问题,就是我们的web系统是在Linux下,也不会有eclipse环境,那也就更不用谈什么工作空间了,所以如果在代码中String path = "E:\\program\\eclipse project\\Server\\WebContent\\img";这么写系统肯定会报错咯。所以最终来说,改成这样也只是权宜之计,方便我们在调试的时候用的,到项目正式发布的时候需要我们再将路径改成request.getSession().getServletContext().getRealPath("/img")的。
- javaweb图片上传 tomcat重新部署 图片消失
- javaweb图片上传 tomcat重新部署 图片消失
- tomcat重新部署,图片消失。
- tomcat上传图片,重启eclipse消失
- 【坑】tomcat中上传的图片文件无故消失
- JavaWeb上传图片
- javaweb图片上传
- 重新部署项目后,上传的图片在浏览器中
- 关于java上传文件到tomcat后,重新部署项目,文件消失的解决方法
- symbolic link ,tomcat重新部署保存文件,图片。
- javaweb实现图片文件上传
- 文件或者图片上传到服务器端(tomcat),重启服务器或者重载项目之后上传文件或图片消失
- 图片文件上传到工程目录是,重新部署时文件丢失问题处理
- django 部署sae上传图片
- tomcat虚拟路径的实践---javaweb项目上传视频,图片到任意磁盘文件夹
- 用tomcat部署图片服务器
- javaweb中struts的图片上传
- javaweb FileUpload 图片文件上传示例
- JavaScript:为什么函数声明后可以不加分号而函数表达式后要加分号呢?
- log4j实现日志记录
- windows系统下Python环境的搭建
- 第4周项目5(2)-循环双链表应用
- 下载prerender-spa-plugin 失败解决方案
- javaweb图片上传 tomcat重新部署 图片消失
- 多张图片上传服务器
- [线段树]HDU 4942——Game on S♂play
- 第五周项目2——建立链栈算法库
- python自学(1)-安装环境及工具、学习教程资料的准备
- 容器扩展点:后置处理器BeanPostProcessor
- 376
- input=file 通过Ajax上传
- Redis理解