【问题标题】:Path inside an web app not a direct linkWeb 应用程序内的路径不是直接链接
【发布时间】:2013-02-01 16:17:12
【问题描述】:

在我的项目中,我目前正在使用直接链接,这些存储上传到服务器的特定文件,这些位置都在项目的文件夹中(文件上传)

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

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

【问题讨论】:

  • 保存到“filename.txt”而不是硬编码目录时会发生什么?它应该加载/保存到当前目录。

标签: java jsf web-applications file-upload


【解决方案1】:

只需使其外部可配置。有多种方法可以实现这一目标。

  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?

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

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

【讨论】:

    猜你喜欢
    • 2015-03-10
    • 2014-12-13
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    相关资源
    最近更新 更多