程序员

jsp-解决文件上传后重启Tomcat时文件自动删除问题

作者:admin 2021-04-14 我要评论

吼吼,我遇到的问题是这样的...... 我写了一个图片上传的方法,上传时,判断没有这个目录就自动建立一个。然后开始上传图片,能成功,能在 服务器 找到文件夹和...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

吼吼,我遇到的问题是这样的......

我写了一个图片上传的方法,上传时,判断没有这个目录就自动建立一个。然后开始上传图片,能成功,能在服务器找到文件夹和相应的文件。但是,重启项目,或者清理缓存之后,图片和文件夹就会自动被删除,不见了。

先说解决办法吧,后面再分析:

1.把/tomcat/webapps/目录清空,删掉该文件夹的所有内容,

2.修改/tomcat/conf/web.xml文件:

<servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
    <init-param>
      <param-name>debug</param-name>
      <param-value>0</param-value>
    </init-param>
    <init-param>
      <param-name>listings</param-name>
      <param-value>true</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet

3.修改/tomcat/conf/server.xml文件:

<Host name="localhost" appBase="webapps"
      unpackWARs="true" autoDeploy="true"
      xmlValidation="false" xmlNamespaceAware="false">
    <!-- SingleSignOn valve, share authentication between web applications
       Documentation at: /docs/config/valve.html -->
    <!--
    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
    -->
    <!-- Access log processes all example.
       Documentation at: /docs/config/valve.html -->
    <!--
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 
        prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
    -->
<!----><Context path="/ser" docBase="D:\project\myProject\editor\WebRoot"></Context>
<!--<Context path="/mvc" docBase="D:\project\myProject\你的项目名\WebRoot"></Context>-->
   </Host>

分析:

重新redeploy的时候,  tomcat 会同步你本地的文件 ,因为本地没有相应的文件夹导致文件丢失。这只是在开发过程中会遇到的问题 实际应用中 tomcat 只会 startup.bat/sh shutdown.bat/sh。我们这样做,其实就是给工程配置虚拟路径,这样tomcat在启动的时候直接找到工程了,上传的图片就不会仅仅只在/tomcat/webapps/目录,而直接到了你的工程里,不管你怎样重启项目,或者清理缓存,上传的文件依然存在!

总结

以上就是本文关于jsp-解决文件上传后重启Tomcat时文件自动删除问题的全部内容,希望对大家有所帮助。有兴趣的朋友可以参阅本站的其他专题,在此非常感谢大家对尊托云数的支持!


本文转载自网络,原文链接:https://m.jb51.net/article/124405.htm

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 四两拨千斤——你不知道的VScode编码Ty

    四两拨千斤——你不知道的VScode编码Ty

  • 我是如何在 Vue 项目中做代码分割的

    我是如何在 Vue 项目中做代码分割的

  • position:sticky 粘性定位的几种巧妙应

    position:sticky 粘性定位的几种巧妙应

  • 从零到一搭建React组件库

    从零到一搭建React组件库