2012-07-06 101 views
1

我有一個ajax文件上傳系統已啓動並正在運行。Scala Lift - 將文件保存到apache目錄中

我想要做的是將文件存儲在Apache的webroot下的一個目錄中,該應用程序在tomcat中運行,我更願意將文件存儲在webroot(在tomcat中)以外,並且在webroot阿帕奇的地方,因爲我們regulary更新應用程序。

我有這樣的:

var root = new java.io.File("").getAbsolutePath() 

,可以給我的應用程序的位置。

我真的不想把這個添加到應用程序的config.xml,所以我想知道如果有人知道如何找到Apache的webroot的位置,如果它改變或我們交換服務器和設置是不同的?

哇,我輸入「根目錄」很多..

非常感謝您的幫助,非常感謝:)

回答

1

查找當前位置阿帕奇是一個棘手的業務,特別是如果你需要處理虛擬主機。你應該爲此使用屬性文件。您可以有多個Props files,每個環境一個。

Lift有很多方法來加載屬性文件,我強烈建議找到一個使用它的解決方案。例如,你甚至可以重寫在Lift中查找配置文件的位置。

或者,你可以在Apache家設置在碼頭啓動腳本變量,像這樣:

JAVA_OPTIONS="$JAVA_OPTIONS -Dapache.home=/etc/httpd" 

然後在你的代碼中使用它:

val apacheHome = System.getProperty("apache.home") 

謹防系統.getProperty返回null,如果這樣的屬性不存在。您可能需要使用Option,使支票更具慣用性:

val apacheHome = Option(System.getProperty("apache.home")) 
// apacheHome: Option[java.lang.String] = ...