国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

解決Tomcat重新部署后圖片等資源被自動刪除的問題

瀏覽:184日期:2023-03-19 16:51:30

昨天在實現圖片上傳并返回鏈接這個功能時。當項目重新部署到tomcat,之前上傳的一些圖片等資源被自動刪除了。

原因是我把圖片存到了target目錄下,因為只有放到它下面才能簡單的通過網頁鏈接拿到圖片。
比如上傳后返回這個路徑:http://localhost:8080/upload/images/timg.jpg

但是當項目重新部署的時候,target會被重新構建,target里面的資源也都會刪除。
(target是用來存放項目構建后的文件和目錄、jar包、war包、編譯的class文件。)

最后想到一個辦法,把同一個圖片保存在兩個路徑下,一個路徑是target下面,另一個路徑是自己開發的項目下,這樣如果重新部署,自己項目里的文件就會重新對target文件進行覆蓋,重新加載到target中。

下面是我的實現代碼

//到本地IDEA項目中的路徑
String localDirString = "E:/zideapro/onlineschool/src/main/webapp/upload/images";
//在tomcat服務器部署的項目路徑
String root_String = request.getSession().getServletContext().getRealPath("/upload/images");

File localDirPath = new File(localDirString);
File root_Path = new File(root_String);
//本地IDEA中目錄不存在則需要創建
if (!localDirPath.exists()) {
  localDirPath.mkdirs();
}
//服務器tomcat中目錄不存在則創建
if (!root_Path.exists()) {
  root_Path.mkdirs();
}
// 本地的文件路徑
File localFilePath = new File(localDirPath + File.separator + attach.getOriginalFilename());//文件目錄+文件名稱
// 服務器中文件的路徑
File root_FilePath = new File(root_Path + File.separator + attach.getOriginalFilename());//項目部署的目錄+文件名稱
//將圖片保存到本地
attach.transferTo(localFilePath);
//從本地路徑復制一份文件到tomcat服務器的下//避免重新部署是圖片資源丟失
Files.copy(localFilePath.toPath(), root_FilePath.toPath());

System.out.println("editormd上傳圖片到本地保存的路徑:" + localFilePath);
System.out.println("editormd上傳圖片到部署項目的路徑:" + root_FilePath);

輸出部分:
editormd上傳圖片到本地保存的路徑:E:\zideapro\onlineschool\src\main\webapp\upload\images\timg2.jpg
editormd上傳圖片到部署項目的路徑:E:\zideapro\onlineschool\target\ssm\upload\images\timg2.jpg

這樣圖片資源上傳到了兩個路徑下,當重新部署項目時本地文件會對丟失的文件進行覆蓋,這樣圖片等資源就不會丟失了。

到此這篇關于解決Tomcat重新部署后圖片等資源被自動刪除的問題的文章就介紹到這了,更多相關Tomcat重新部署資源被自動刪除內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: Tomcat
主站蜘蛛池模板: 常山县| 永丰县| 汉源县| 维西| 翁源县| 遂川县| 新乡县| 金川县| 宣威市| 京山县| 师宗县| 定远县| 遵义县| 荣成市| 灌云县| 定远县| 南和县| 沙洋县| 鲜城| 新密市| 彭山县| 维西| 抚宁县| 全州县| 开鲁县| 洮南市| 宜阳县| 孙吴县| 长宁区| 磴口县| 裕民县| 陇西县| 华蓥市| 三台县| 芦溪县| 正阳县| 贵德县| 连云港市| 汪清县| 尤溪县| 宁南县|