Просмотр файлов на стороне сервера в ASP.NET


Я создаю ASP.NET веб-приложение для планирования задач на нашем сервере из удаленного расположения с помощью оболочки .NET для запланированных задач. Однако я застрял.

Пользователь должен иметь возможность просматривать файловую систему на сервере, чтобы получить "файл для запуска" для новой задачи, которую пользователь создает в этом приложении. Мне нужно получить путь к файлу / filename и передать его в оболочку .NET.

Я пробовал использовать HTMLInputFile, но я не нашел способа заставить это работать для мне.

Любая помощь приветствуется.

Спасибо


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

4 ответа:

HTMLInputFile используется для просмотра файловой системы клиента и загрузки файла на сервер. Он не используется для просмотра файловой системы сервера.

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

Есть пример базовой реализации этого здесь.

Обновление:

В этом примере путь, который вы заменяете "yourfolderHere" на должен быть виртуальный путь, а не абсолютный путь. Так, например "C:\Inetpub\wwwroot\uploads" не сработает, но "закачки" сработают.

Я надеюсь, что само собой разумеется, что есть серьезные проблемы безопасности, о которых нужно думать при реализации чего-то подобного.

HTMLInputFile будет работать только на клиентском компьютере.

Вам нужно написать браузер файловой системы в ASPX/HTML, который просматривает на стороне сервера. Это не должно быть так сложно сделать.

Нельзя использовать тег <input type="file"
Это вызовет диалог на стороне клиента, который просматривает клиентскую машину.

Насколько мне известно, вам нужно создать свой собственный "браузер".

Например, вы можете использовать My.Компьютер.Классы файловой системы для получения списка файлов в папке и отображения их на веб-странице. Затем пользователь выбирает соответствующий файл и отправляет ответ обратно на сервер.

Вы можете использовать System.IO.Directory для получения каталогов и файлов. Они могут быть показаны несколькими способами. Простой выбор браузера / файла должен быть возможен менее чем в 50 строках кода.

Также имейте в виду, что вам может потребоваться предоставить дополнительные разрешения пользователю, который работает в вашем веб-приложении, чтобы файловая система была доступна.

Есть также различные последствия для безопасности вокруг этого, так что не предоставляйте доступ ко всему, если вы действительно не нуждаетесь в этом.