0

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

4

2 回答 2

1

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

于 2013-03-26T07:14:33.613 回答
0

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

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

从“pathToFile”变量中,您可以找到项目主目录的根目录。然后,您可以将上传的文件保存到此目录。请注意,如果您将项目部署为战争文件,这可能是不可能的(因为您无法写入战争文件)。但是,如果您以爆炸方式部署它,它将始终有效。

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

于 2013-03-26T07:12:39.830 回答