Файловый менеджер на PHP

Den1xxx

Разрушитель (V)
Сообщения
126
Симпатии
69
Баллы
1 016
Представляю мой проект — файловый менеджер на PHP
Очень полезная штука на разрабатываемом сайте для «сделай быстро».
Отличие от других проектов — всё в одном файле, даже настройки.
Некоторые настройки хранятся в куках.
Функционал:
1. Навигация по папкам.
2. Управление — редактировать файлы, создать, удалить, положить в архив, закачать и скачать, поменять права, посмотреть картинки.
! При редактировании файла восстанавливает старую дату редактирования, чтобы не палиться, если использовать в качестве шелла !
Обновлено 07.03.2022: восстановление старой даты можно отключить.
3. Возможность включения авторизации.
4. Выполнение кода PHP, шаблоны кода.
5. Выполнение запросов MySQL, шаблоны запросов.
6. Мини-прокси
7. Настройки всего этого и интерфейса — хранятся внутри менеджера
fileman.png
!!! Первая секция настроек хранится в куках, 3 последующие в самом файле.
Языки — английский, немецкий, французский, русский, украинский (переводы добавлены благодаря пользователям старого нулледа)
В общем, написано для себя и помогает каждый день.
Пост создан как для предложений по функционалу и интерфейсу, так и для привлечения к разработке новых людей.
 
Последнее редактирование:
есть один важный ньюанс, сейчас на многих хостах стоит свой антивирус, и этот код он воспримет как "webshell".
О чём сразу уведомит клиента, имейте ввиду.
 
есть один важный ньюанс, сейчас на многих хостах стоит свой антивирус, и этот код он воспримет как "webshell".
О чём сразу уведомит клиента, имейте ввиду.
Интересно бы узнать на какой триггер срабатывает
 
есть один важный ньюанс, сейчас на многих хостах стоит свой антивирус, и этот код он воспримет как "webshell".
О чём сразу уведомит клиента, имейте ввиду.
На 5 разных хостингах ни один антивирус не сигналил. Собственно, дурацкий антивирус реагирует обычно на команды eval, что в менеджере есть, умный на выполнение команд операционной системы из php, чего в менеджере нет.
 
Добрый день, друзья.
Хотел бы допилить вот что в менеджере, но не сображу как.
60% менеджера сейчас занимают переводы (напомню, весь менеджер состоит из одного файла).
По идее, хранить переводы внутри не айс. Они должны подтягиваться с внешнего источника.
Кому-то нужен только русский, кому-то украинский, а кому-то и английский норм.
К тому же, при хранении внутри файла, редактировать это тяжело и делаю только я.
А точнее, правлю только русский при необходимости, чего уж там)
При выносе в внешний источник только переводов, возможно, переводы бы слали и правили другие носители языка.
Проще всего, видимо, загружать на Гитхаб, создав отдельный проект, и потом подгружать в менеджер настройки в формате json, например.
И вот как это реализовать, я не знаю, чтобы с Гитхаба отдавался json не архивом, а в нормальном виде?
Ну или любые другие идеи выслушаю, чтобы вынести языки из файломенеджера и подгружать по необходимости.
Возможно, по этой схеме загружать и другие настройки из внешнего источника.
Было бы круто.
 
Последнее редактирование:
Можно перевод и в js вставить. А гитхаб может отдавать файл в plain.
 
Можно перевод и в js вставить. А гитхаб может отдавать файл в plain.
Можно и в js, но в настройках имхо дурнее — раз сохранил и никакой нагрузки на браузер.
Знать бы ещё, как это сделать, чтобы он отдавал в plain. Я не часто использую Гитхаб.
 
Последнее редактирование:
При выборе языка с гитхаба подтягивается контент файла переводов - как в примере выше и сохранятеся локально.
 
При выборе языка с гитхаба подтягивается контент файла переводов - как в примере выше и сохранятеся локально.
Точнее сохраняется в настройках менеджера внутри. Файлменеджер в 1 файле и это по возможности должно сохраняться. Можно ещё в куках хранить, но не знаю, хватит ли там места. Скорее всего нет: с какого-то мануала — «не более 50 cookies на домен, максимум 4 КБ на cookie». Можно задействовать Localstorage, но это также может быть нестабильно.
 
Последнее редактирование:
Файловый менеджер обновился.
Изменения: добавлены настройки, восстанавливать ли время модификации файла после его редактирования.
Описание:
В прошлых релизах файловый менеджер всегда восстанавливал старое время модификации файла после редактирования. Теперь это можно включить или отключить. Восстановление старого времени (до редактирования) не позволяло на некоторых хостингах сбросить кеш OPcache и изменения файла могут быть не видны.
Дополнительно: небольшие исправления для работы вплоть до PHP 7.4
Протестировать под PHP 8 пока нет возможности, но думаю будет работать тоже.
 
Обновление, версия 1.4

Описание:
Файлы локализации вынесены из файлового менеджера и теперь грузятся с GitHub.
Текущая локализация сохраняется в файловом менеджере.

Результат:
Файл стал легче на 10% (примерно), файлы локализации теперь можно редактировать отдельно, в том числе предлагать от других пользователей.
Пока доступно 5 языков, хранятся здесь https://github.com/Den1xxx/Filemanager/tree/master/languages

Заметки к релизу.
Вариант хранения языка в куках тестировал, но не срослось: ограничение по куке 4кб, у нас в русском уже больше из-за 2-байтной кодировки.
Вообще-то оно работало, но ругалось матом)))
Для уменьшения размера пробовал даже жать gzip'om куки, но тогда возникают другие сложности и как результат — нестабильная работа.
Localstorage тоже не вариант, PHP с ним напрямую работать не может.
У хранения в файле, на котором я окончательно остановился, есть один минус: при работе с файлом разных людей с разными языковыми предпочтениями файл будет постоянно перезаписываться. В этом случае лучше пусть используют разные файлы.
 
Последнее редактирование:
Обновление, версия 1.5
Добавлен поиск по содержимому файлов, с заданием маски файла, рекурсивно по папкам.

Поиск не выводит часть текста, как grep в линукс, вместо этого выводится список ссылками на найденные файлы, для редактирования.
Ибо фраза может быть и в 300 файлах, и больше.
Используйте с осторожностью на больших данных!
 
ух, я прямо молодось вспомнил, больше 15 лет назад этот файлменеджер юзал, еще диалап у меня был.
 
ух, я прямо молодось вспомнил, больше 15 лет назад этот файлменеджер юзал, еще диалап у меня был.
Ну тащемта он сильно прогрессировал с тех времен.

Интересно, что мой Гитхаб акк оказался сейчас недоступен для просмотра. Похоже на shadowban.
Написал в техподдержку. Под логином виден, все репозитории. А под гостем нет)
Похоже надо сделать клон для таких случаев на своём сервере.
 
Назад
Верх