Web应用程序内的路径不是直接链接

时间:2013-02-16 22:38:59

标签: java jsf web-applications file-upload

在我的项目中我目前正在使用直接链接,这些存储特定文件会上传到服务器,这些位置都在项目的文件夹中(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

但这不是一个理想的情况,因为我目前正在多台机器上进行测试,每台机器都需要不同的路径,所以我想知道,是否有可能创建一条路径,以便它与哪台机器无关

1 个答案:

答案 0 :(得分: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. 将其设置为properties file条目。

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

    它采用通常的Properties API方式:

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

    属性文件本身的位置实际上是一个完整的问题,已在此处回答:Where to place and how to read configuration resource files in servlet based application?

  4. 无论哪种方式,您都可以轻松地按如下方式引用文件:

    File some = new File(uploadLocation, "some.ext");