0

RELATIVE パスを持つサーブレットを使用してサーバーにファイルをアップロードしたいです。ファイルをアップロードするときはいつでも、プロジェクトのホーム ディレクトリの下のフォルダーにアップロードする必要があります。私は絶対パスを使用したくありません。そのパスはデータベースに保存する必要があります。

4

2 に答える 2

1

サーブレット API のgetRealPath()を使用して、コンテキスト ルートの実際の物理パスを取得し、そこにアップロードされたファイルを保存できます。

于 2013-03-26T07:14:33.613 に答える
0

サーブレット内では、以下のようにクラスパス内に存在するリソースへのパスを見つけることができます。

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

「pathToFile」変数から、プロジェクトのホーム ディレクトリのルートを見つけることができます。その後、アップロードしたファイルをこのディレクトリに保存できます。プロジェクトを war ファイルとしてデプロイしている場合は、これができない可能性があることに注意してください (war ファイルに書き込むことができないため)。ただし、展開して展開すると常に機能します。

pathToFile=C:/someFolder/yourProject/WEB-INF/classes/someFile.properties の場合。/WEB-INF/classes/someFile.properties 部分は常に同じであるため、ホームディレクトリは C:/someFolder/yourProject であると推測できます

于 2013-03-26T07:12:39.830 に答える