Проблема
Привет, я хочу иметь веб-приложение, в котором пользователь мог бы перемещаться по системе каталогов и подкаталогов и загружать / просматривать файлы. (похоже на файловый менеджер, но у них есть некоторые важные ограничения для этого проекта ограничение )
Я хочу создать панель, в которой я смогу перейти (через почтовый запрос) к следующей папке или скачать файл и загрузить файл.
Существует две категории пользователя:
Возможное решение
Что если я создаю таблицу таким образом
- --- -
путь -> строка -> первичный ключ (этот путь равно пути в файловой системе)
isDirectory -> логическое
canViewByUserB -> логическое
- - - -
Поле пути уникально, поэтому у меня не может быть двух файлов с одинаковыми именами в одной папке. Итак, когда создается панель, я выполняю поиск с помощью почтового запроса для пути, который не содержит "/" (возможно, с оператором LIKE?), Поэтому он находится в папке root. Если этот запрос извлекает каталог:
- , если пользователь щелкает по нему, я делаю пост-запрос и ищу путь, который начинается с "nameOfThisDirectory / someString", но он не должен содержит другое / (таким образом я получаю дочерний каталог)
- файл, получаем запрос на загрузку файла с указанным путем
РЕДАКТИРОВАТЬ
Чтобы пройти через файловую систему через БД, здесь запрос
select * from file where path REGEXP '^([^/]*[/]){2}[^/]*$';
'2' указывает два /
что вы думаете этого решения? С помощью этой настройки я могу легко сделать некоторые вещи, такие как
- создать общее число загрузок файла
- количество визуализаций в файле
- легко перемещаться по файловая система
- применять политики к файлам (пользователь a и пользователь b)
Спасибо , ожидая совета