2013-02-16 2 views
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 

, но это не идеальная ситуация, так как в настоящее время я тестирую несколько машин, и каждая машина нуждается в другом пути, поэтому мне интересно, можно ли создать путь, чтобы не иметь значения, на какой машине оно находится

+1

Что произойдет, если вы сохраните файл «filename.txt» вместо hardcoding? Он должен загружать/сохранять в текущий каталог. – NoBugs

ответ

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?

В любом случае вы можете легко ссылаться на файлы следующим образом:

File some = new File(uploadLocation, "some.ext"); 
Смежные вопросы