吼吼,我遇到的問題是這樣的......
我寫了一個圖片上傳的方法,上傳時,判斷沒有這個目錄就自動建立一個。
然后開始上傳圖片,能成功,能在服務器找到文件夾和相應的文件。
但是,重啟項目,或者清理緩存之后,圖片和文件夾就會自動被刪除,不見了。
先說解決辦法吧,后面在分析:
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/目錄,而直接到了你的工程里,
不管你怎樣重啟項目,或者清理緩存,上傳的文件依然存在!