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

标签 java jsf web-applications file-upload

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

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. 在服务器启动期间设置环境变量。

    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");

关于java - Web 应用程序内的路径不是直接链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14915887/

相关文章:

java - JQuery Ajax POST 方法不起作用? $.post

java - 如何正确引用具有缩写类名的 Spring 服务?

web-applications - iPhone Web App - 在 iOS8 中停止 body 弹跳/滚动

java - 战斧和滚动选项卡

java - h :commandButton multiple actions: download file and render ajax table

java - 在动态 Web 应用程序中使用 JDBC

php - Web 应用程序上的网络摄像头捕获

java - 将java的xml Element对象转换为文本

java - 如何捕获类内部的 MethodNotFoundException 异常?

java - 来自 Servlet 的有效 URL 出现 404 错误