javaWeb開發中關於eclipse等ide重新部署或重啟項目等原因造成上傳文件丟失問題解決方案

来源:http://www.cnblogs.com/fallons/archive/2017/12/10/8018530.html
-Advertisement-
Play Games

在開發項目時,有時候需要用到上傳功能,比如頭像上傳等,其文件會保存到伺服器中。但是我發現在用eclipse做項目的過程中,每次重新部署項目,原來上傳的文件就會丟失。 其原因是因為每次項目修改後,eclipse會把我們放在工作空間workspace中的這個項目拷貝到伺服器下(如tomcat的webap ...


在開發項目時,有時候需要用到上傳功能,比如頭像上傳等,其文件會保存到伺服器中。但是我發現在用eclipse做項目的過程中,每次重新部署項目,原來上傳的文件就會丟失。

其原因是因為每次項目修改後,eclipse會把我們放在工作空間workspace中的這個項目拷貝到伺服器下(如tomcat的webapps目錄下)。因為之前上傳的文件都存在之前的部署的項目里,所以新部署的項目會直接把原項目覆蓋掉。原來上傳的文件就都沒有了。

 解決方案一:

在tomcat伺服器的webapps下單獨建立一個專門存放資源文件的文件夾(xxx)

在項目里上傳文件上傳到此文件夾里就可以了。

        要請求文件可以直接用http://localhost:8081/xxx/xxxxx.jpg

解決方案二:

      用虛擬路徑的方式配置一個空項目。在涉及上傳的時候直接把文件寫到這個配置了虛擬路徑的項目里,最終文件會保存到虛擬路徑對應的物理盤符

上。如果是tomcat伺服器,在tomcat的server.xml裡面配置。但是在實際操作過程中,發現server.xml也會被重寫。是因為eclipse工作空間中存在一個

叫Servers的項目,它裡面有一個叫server.xml的文件,在部署項目時,它會把這個文件覆蓋掉tomcat伺服器中。所以,我們可以把如下配置遷移到

eclipse下的Servers項目下進行。

配置在HOST下

1 <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false">  
2 <!-- 虛擬路徑配置 -->  
3 < Context docBase="D://objimgs//upload" path="/objimgs"/>  
4 </Host>

請求http://www.***.com/objimags/文件名.jpg的時候,會自動到D://objimgs//upload目錄下找相關文件


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 文件的操作 1> 此事例操作的是text文件 2> 文件的操作有讀取text內容,將內容寫入到文件中,刪除文件,創建文件 3> 新建一個控制器,名為rwfile.go.其代碼如下: 4> 新建一個filerw.html頁面作為顯示.其代碼如下: 5> 在路由器router.go中添加路由.具體代碼如 ...
  • 一直想著10號更新這邊,終於在9號晚上有了自己的博客,弄了一晚上搞定之後睡覺,轉過天來就忘了! 用的是wordpress,然後主題也是一個弄UNREAL的網友分享的,很漂亮! 以後的游戲相關的更新可能會放到那邊多一些,這邊還是代碼和生活! 這個月工作比較忙,游戲弄的少, 把按鍵檢測的流程跑通了一多半 ...
  • 單引號和雙引號: 單引號和雙引號這種情況是可以通用的;但是當兩個混在一起用的時候很容易出錯. """ """ 三個引號作用是換行並保持當前段落(所見即所得)。 ...
  • 1. 前言 HashMap是非線程安全的,在多線程訪問時沒有同步機制,併發場景下put操作可能導致同一數組下的鏈表形成閉環,get時候出現死迴圈,導致CPU利用率接近100%。 HashTable是線程安全的,使用synchronized鎖住整個table的方式來保證併發訪問下的線程安全,但效率卻比 ...
  • ...
  • 基於資料庫的自動化生成工具,根據資料庫表結構自動生成JavaBean、自動生成MyBaits的Mapper映射配置文件、自動生成資料庫設計文檔、自動生成各種SQL等。支持MySQL、Oracle、SQLServce、PostgreSQL四種資料庫,支持Window、Linux、MacBook等多個... ...
  • 1、作用域public,private,protected,以及不寫時的區別 答: 區別如下: 2、Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類,是否可以implements(實現)interface(介面) 答: 匿名的內部類是沒有名字的內部類。 ...
  • 1. 列表list 1.1 切片# 定義一個list。list = [1, 2, 3, 4, 5] 從左往右讀取字元(預設步長為 1 )。如:list[-2:-1] # 返回一個list數據類型,[6]list[2] # 返回一個int數據類型, 3 從右往左讀取字元串(預設步長為 1 )。如:li ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...