2013-03-26 69 views
0

我想上傳一個文件到服務器上,使用帶有RELATIVE路徑的servlet。每當我上傳一個文件時,它應該上傳到我的項目的主目錄下的一個文件夾中。我不想使用絕對路徑,並且該路徑必須保存到數據庫中。上傳服務器上的文件,而不使用相對路徑

回答

0

在servlet中可以找到類似下面的類路徑中的某些資源的路徑。

URL url = this.getClass().getClassLoader().getResource("someFile.properties"); 
String pathToFile = url.getPath(); 

從'pathToFile'變量中,您可以找到項目主目錄的根目錄。然後,您可以將上傳的文件保存到該目錄。請注意,如果您將項目部署爲war文件,則可能無法執行(因爲您無法寫入war文件)。但是如果以爆炸方式部署它,它將始終有效。

if pathToFile = C:/someFolder/yourProject/WEB-INF/classes/someFile.properties。您可以推斷出您的主目錄是C:/ someFolder/yourProject,因爲/WEB-INF/classes/someFile.properties部分將始終是相同的

1

您可以使用servlet API的getRealPath()來獲取實際的物理路徑上下文根,您可以將上傳的文件保存在那裏。

相關問題