解決 tomcat 重啟上傳文件消失


Tomcat 重啟 上傳文件消失

開發模式

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

部署模式

  • 當然在運行的過程中,我們可以設置 Tomcat 來達到上傳文件

  • 思路:

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

    • 修改 /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>
    • 修改 /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>
  • 原理:

    • D:\project\myProject\...\WebRoot 這個路徑是項目的 WEB 根目錄,設置以后上傳時就會在 upload 文件夾下上傳文件
    • 若在 eclipse 中點來點去的部署項目,就是等於把 原本項目 都復制到 /tomcat/webapps/ 目錄下,只要重新部署或清除緩存,上傳的文件都會煙消雲散
    • 重新部署會先刪除原本項目的目錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM