2012-07-06 87 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] = ...