您的位置:首页 > 运维架构 > Tomcat

解决:tomcat重新部署会删除临时文件以及临时文件夹

2016-05-04 09:58 2371 查看
是这样的,当我们需要上传文件到服务器的时候,如果没有经验的同学可能是会把文件保存在tomcat这样的服务器里面,比如我们的WebRoot目录下面,但是这样做的后果就是,如果我们重新部署tomcat服务器的时候,会删除临时生成的文件以及文件夹,也就是说,会删除我们上传的文件,这样的话我们每次重新部署,上次上传的文件就没有了……,我这里的解决方案是这样的,直接将文件保存在tomcat服务器之外,也就是说,保存在磁盘上的某一块区域中,但是,怎么样才能让用户通过tomcat服务器访问到我们的磁盘上的文件呢?在Windows下,我们需要打开tomcat的/conf/server.xml文件,在Host节点下添加一句代码

<Context path="/upload" docBase="g:/upload"  reloadable="true"/>


这句代码的意思是,当我们访问/upload这个url的时候,会指向我们本地磁盘上的g:/upload这个文件夹。

这里我举个例子,我的用户头像文件是保存在g:/upload/portrait目录下的,那么我们用户表中保存头像文件的地址应该是upload/portrait/xxx.jpg,这样在html中就可以直接获取到了,但是我们在服务器中保存文件的时候可不是将文件保存在upload/portrait/xxx.jpg地址下,而是在g:/upload/portrait目录下,也就是说,我们需要把这个路径保存在配置文件中,因为将来把工程部署到linux服务器上的时候,就没有g盘这个概念了。部署到linux系统上之后,再把g;/upload/portrait改为/usr/local/upload/portrait,注意,这里我们最好自己新建一个/usr/local/upload/portrait目录,并且设置权限,不然有可能因为权限问题导致无法将文件保存到该目录下。

在linux下添加的代码略有区别,如果完全按照windows一样的代码是不行的,我试过……

<Context path='/upload' docBase='/usr/local/upload' crossContext='true' trusted='true'/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: