Файловый менеджер на PHP, с правами, контролем версий и AJAX-ом

9 Фев
2012

Сразу начну с преимуществ:
— Можно задавать права доступа на файлы и директории. Права двух типов: есть доступ или нет доступа. Файлы хранятся в недоступной для скачивания по прямой ссылке папке. Скачивание файла происходит с предварительной проверкой пользователя и прав доступа на файл.
— Контроль версий каждого файла. После загрузки файла он сохраняется с именем, которое не позволяет перезаписать существующие файлы, а его «оригинальное» имя сохраняется в БД. Данный подход разрешает хранить разные состояния файлов.
— Автоматическое создание превью загружаемых изображений.
— Файл в менеджере можно сделать доступным для скачивания
— GPL, код доступен на github





Для загрузки файлов используется Ajax Upload. Он поддерживает мультизагрузку и позволяет загружать файлы, переместив их drag&drop-ом на кнопку «Загрузка файлов». Главный недостаток: Ajax Upload не работает на планшетных (Android) устройствах.
Любой пользователь файлового менеджера может обладать правами администратора, что указывается при добавлении нового или редактировании существующего пользователя. Администратор может видеть все, в том числе «удалённые» файлы.

Установка:
1) Скачать код файлового менеджера github
2) Создать базу данных и пользователя для доступа к базе. Дамп хранится в папке /sql/fm.sql
3) Распаковать исходный код системы в любую директорию веб-сервера
4) Выставить права на запись в необходимые директории:
chmod 777 /cache/ /upload/ /upload/_thumb/
5) Отредактировать файл /system/config.ini:
; включить кеширование, ускоряет выполнение php скриптов
twig_cache = false

; пути, используемые системой, менять не нужно
[path]
application = «/system/»
library = «/system/library/»
controller = «/system/Controller/»
templates = «/system/View/templates/»
layouts = «/system/View/layouts/»
cache = «/cache»
upload = «upload/»

[fm]
; максимальный размер загружаемого файла в байтах
sizeLimit = 10485760
; цвет фона для создаваемых превьюшек и качество сжатия JPEG
rgb = 0xFFFFFF
quality = 100

; параметры для доступа к БД
; т.к. используется PDO можно использовать другие базы
[db]
adapter = «mysql»
host = «localhost»
username = «»
password = «»
dbname = «»
6) Открыть в браузере файловый менеджер. Для входа filemanager/filemanager
Логин/Пароль пользователя с правами администратора

1) Ajax Upload
valums.com/ajax-upload/
2) Иконки типов файлов: OSX 3.3
По материалам Хабрахабр.



загрузка...

Комментарии:

Наверх