在服务器上上载文件而不使用相对路径

时间:2013-03-26 06:55:47

标签: jsp servlets ejb

我想使用带有RELATIVE路径的servlet将文件上传到服务器。每当我上传文件时,它应该被上传到我项目的主目录下的文件夹中。我不想使用绝对路径。该路径必须保存到数据库中。

2 个答案:

答案 0 :(得分:1)

您可以使用servlet API的getRealPath()来获取上下文根的实际物理路径,并可以将上传的文件保存在那里。

答案 1 :(得分:0)

在servlet中,您可以找到位于类路径中的某些资源的路径,如下所示。

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

从'pathToFile'变量中,您可以找到项目主目录的根目录。然后,您可以将上载的文件保存到此目录中。请注意,如果要将项目部署为war文件,则可能无法执行此操作(因为您无法写入war文件)。但是如果你以爆炸的方式部署它,它将永远有用。

如果pathToFile = C:/someFolder/yourProject/WEB-INF/classes/someFile.properties。您可以推断出您的主目录是C:/ someFolder / yourProject,因为/WEB-INF/classes/someFile.properties部分将始终相同