1

私のプロジェクトでは現在直接リンクを使用しています。これらはサーバーにアップロードされる特定のファイルを保存します。これらの場所はすべてプロジェクトのフォルダーにあります (fileupload)

destinationPDF=D:/Documents/NetBeansProjects/printing~subversion/fileupload/web/resources/pdf/
destination=D:/Documents/NetBeansProjects/printing~subversion/fileupload/Uploaded/
fileList =D:/Documents/NetBeansProjects/printing~subversion/fileupload/web/resources/Directory Files/directoryFiles.txt

しかし、これは理想的な状況ではありません。現在、複数のマシンでテストしており、マシンごとに異なるパスが必要なので、どのマシン上にあるかに関係なくパスを作成することは可能でしょうか?

4

1 に答える 1

2

外部から構成可能にするだけです。それを達成するためのさまざまな方法があります。

  1. サーバーの起動時に環境変数を設定します。

    SET UPLOAD_LOCATION=C:\path\to\uploads
    

    次のように利用できます。

    String uploadLocation = System.getenv("UPLOAD_LOCATION");
    
  2. サーバーの起動時に VM 引数を設定します。

    -Dupload.location="C:\path\to\uploads"
    

    次のように利用できます。

    String uploadLocation = System.getProperty("upload.location");
    
  3. プロパティ ファイルのエントリとして設定します。

    upload.location=C:\path\to\uploads
    

    通常のPropertiesAPI の方法で利用できます。

    String uploadLocation = properties.getProperty("upload.location");
    

    プロパティファイル自体の場所は、実際にはそれ自体が全体的な問題であり、すでにここで回答されています:サーブレットベースのアプリケーションで構成リソースファイルを配置し、どのように読み取るか?

どちらの方法でも、次のようにファイルを簡単に参照できます。

File some = new File(uploadLocation, "some.ext");
于 2013-02-17T03:07:14.210 に答える