В конечном счете, именно то, что делает ваше приложение, определяет, где хранятся файлы.
Судя по звукам, ваше приложение хранит файлы в текущем каталоге JVM, который является каталогом "bin" при запуске веб-сервера через NetBeans. Если это так, вы найдете их в любом текущем каталоге, когда Tomcat запускается как служба Windows.
Честно говоря, я думаю, вы ошиблись. Вы должны принять осознанное решение о том, что загруженные файлы должны быть сохранены, а затем убедиться, что используемый вами механизм загрузки помещает их туда.
Очевидно, что помещать их в текущий каталог - плохая идея. Вы не хотите, чтобы они хранились в разных местах в зависимости от того, как запускается веб-контейнер И, очевидно, каталог "bin" - неподходящее место. (Что произойдет, если пользователь попытается загрузить файл, имя которого совпадает с одним из сценариев, находящихся в «bin»?)
Так где должен вы будете помещать файлы?
На мой взгляд, у вас есть три варианта:
В подкаталоге каталога work
... в который Tomcat обычно помещает временные файлы, такие как скомпилированные JSP.
В пользовательском подкаталоге установочного каталога Tomcat.
В отдельном каталоге где-то еще в файловой системе.
Вы не должны быть выброшены в каталог веб-приложения, потому что файлы, которые там обычно уносятся при повторном развертывании веб-приложения, и потому, что существует больший риск того, что загруженные файлы будут мешать вашему веб-приложению.
Вы не должны сбрасывать их в каталоги bin, logs, lib или config из-за риска вмешательства ... и потому, что они просто не логичны.
Если вы хотите записать файлы относительно корня установочного каталога tomcat, вы можете узнать, что это, позвонив по номеру System.getProperty("catalina.base")
.
Но что бы вы ни делали, вам нужно убедиться, что пользователь не может случайно или намеренно загрузить файлы в неправильное место; например, указав абсолютный путь или путь, который использует «.. / .. / ....» для выхода из области загрузки.