解決 tomcat 重啓上傳文件消失

Tomcat 重啓 上傳文件消失

開發模式

  • 首先開發者模式下,部署在 Tomcat 上沒有什麼好的辦法,不然沒法調試
    • 除非使用絕對路徑,缺點:不一樣的操做系統路徑不一樣,自動設置
    • 對於圖片上傳通常咱們使用圖片服務器,上傳 CDN中
  • 通常獲取的路徑都是 request.getSession().getServletContext().getRealPath("/upload/" + filename)

部署模式

  • 固然在運行的過程當中,咱們能夠設置 Tomcat 來達到上傳文件web

  • 思路:apache

    • 清空 /tomcat/webapps/ 目錄項目文件緩存

    • 修改 /tomcat/conf/web.xml 文件tomcat

    • <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>
    • 修改 /tomcat/conf/server.xml 文件服務器

    • <Host name="localhost" appBase="webapps"
          uppackWARs="true" autoDeploy="true"
          xmlValidation="false" xmlNamespaceAware="false">
        <!-- 註釋如下代碼 -->
          <Valve vlassName="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="common" resolveHosts="false"/>
          <context docBase="D:\project\myProject\…\WebRoot"  path="/">
      </Host>
  • 原理:app

    • D:\project\myProject\...\WebRoot 這個路徑是項目的 WEB 根目錄,設置之後上傳時就會在 upload 文件夾下上傳文件
    • 若在 eclipse 中點來點去的部署項目,就是等於把 本來項目 都複製到 /tomcat/webapps/ 目錄下,只要從新部署或清除緩存,上傳的文件都會煙消雲散
    • 從新部署會先刪除本來項目的目錄
相關文章
相關標籤/搜索