Файловый менеджер php одним файлом

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

Файловый менеджер php одним файлом

Представляю список всех мне известных файловых менеджеров которые можно использовать при веб разработке. Естественно что данные менеджеры состоят из мускулистого PHP и ядреного JavaScript.

Файловый менеджер php одним файломelFinder — Достаточно известный и популярный в веб среде веб менеджер файлов который написан на PHP и JavaScript который представляет огромный перечень возможностей в разработке веб решений.

Видео обзор:

Файловый менеджер php одним файломsjFilemanager — достаточно не плохой файловый менеджер AJAX + PHP. Стоит отметить его технические детали а так же разработчиков словянских кровей. Файл менеджер можно встроить как в обычный редактор так и в TinyMCE. Все фишки данного менеджера осуществлены благодаря AJAX!

Файловый менеджер php одним файломPydio.com — Предста безопасный общий доступ к файлам для бизнеса в веб режиме. Реализует всестороннюю синхронизацию для коллектива работающего над бизнес проектом. Имеет открытый исходный код может быть развернут на личном (или удаленном) хостинге или в частном облаке. Если вам необходима установка pydio на linux следуйте данной инструкции.

Видео презентация:

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

Файловый менеджер php одним файлом

simogeo — Filemanager — Файловый менеджер с открытым исходным кодом выпущен под лицензией MIT, является альтернативой elfinder или CKFinder менеджерам.

Источник

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

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

Файловый менеджер php одним файлом

FM создан без использования фреймворков. Это довольно обычное MVC приложение, где основные действия контроллера могут быть вызваны AJAX запросом, например:
— при инициализации приложения вызывается AJAX контроллер /ajax/fm/?action=files, функция files() в зависимости от текущей директории, которая хранится в сессии, получает список файлов и директорий.
— клик на файле делает активным DIV с а в зависимости от выбранной вкладки диалогового окна получает необходимые данные для текущего файла.

Пройдя по ссылке можно ознакомиться с основами функционирования приложения.

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

Установка:
1) Скачать код файлового менеджера github
2) Создать базу данных и пользователя для доступа к базе. Дамп хранится в папке /sql/fm.sql
3) Распаковать исходный код системы в любую директорию веб-сервера
4) Выставить права на запись для необходимых директорий:
/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
Логин/Пароль пользователя с правами администратора

Источник

Файл менеджер PHP одним файлом

Файловый менеджер php одним файлом

Очень нужная и удобная вещь phpFileManager. Это полноценный инструмент для управления файловой системой из одного файла с множеством функций и поддержкой русского языка.

Это инструмент, предназначенный для быстрого управления файлами, а также для проверки конфигурации и безопасности PHP-сервера.

Единственный PHP-файл в котором содержится весь код файлового менеджера может быть загружен на хостинг с любым именем и будет доступен по любому URL. Так же на файловый менеджер можно установить пароль.

Функции файлового менеджера:

Файловый менеджер php одним файлом

Файловый менеджер php одним файлом

В этом руководстве создадим чат-бота ВКонтакте, которого можно добавить не только в сообщения группы, но и в групповую беседу. Бот может прослушивать все сообщения в беседе, и если в каком-то из них будет содержаться определенное слово, фраза или часть текста, Читать далее

Файловый менеджер php одним файлом

Файловый менеджер php одним файлом

У инстраграма нет готового виджета для вывода постов на сайте. В прошлой статье мы рассматривали как создать Instagram виджет для сайта с помощью конструктора. Это самый простой и быстрый способ, и на мой взгляд самый лучший. Единственный его минус, как Читать далее

Файловый менеджер php одним файлом

Абсолютно любой предмет из нашей жизни мы можем описать по его характеристикам и состоянию, а так же воздействовать на это состояние. Например, ваш автомобиль имеет определенный цвет, марку, двигатель и т.д. Кроме того он может ехать, стоять, набирать или сбавлять Читать далее

Файловый менеджер php одним файлом

Удалить значение из массива по ключу на PHP довольно простая задача, но вот когда необходимо удалить элемент массива именно по значению, то тут возникают небольшие сложности. Вроде бы банальная задача, но придется воспользоваться небольшой хитростью. В этой статье рассмотрим как Читать далее

Файловый менеджер php одним файлом

В этой статье рассмотрим как создать простого чат-бота для Viber, который будет принимать и отправлять сообщения в чат. Шаг 1 Итак, для начала необходимо зарегистрироваться в сервисе Viber Admin Panel по этой ссылке. Шаг 2 Создаём бота. Для этого заполняем Читать далее

Файловый менеджер php одним файлом

Источник

История одного файлового менеджера

Не знаю, как вы, а я начинал изучение веба и PHP в частности путём написания бесплатных скриптов. Я написал 2 своих CMS, галерею, форум, гостевую книгу… Первым моим проектом был файловый менеджер, и бы хотел рассказать о том, через какие стадии развития он прошел и чем стал в итоге. Например, я научил его открывать папки с 500к файлов, не вылезая за memory_limit в 32 Мб с временем генерации страницы в несколько секунд.

Я подготовил небольшое демо его работы, а также выложил исходники файлового менеджера на github. Исходные тексты не слишком высокого качества, ибо в основном писалось это мной году в 2007, то есть 5 лет назад :).

2002 год. С чего всё началось. PHPFM 1.0

По сути, первым проектом, который я решил написать, был файловый менеджер. Причина была очень простая: тогда я не умел пользоваться MySQL, а с файлами уже более-менее научился :). Я назвал файловый менеджер PHPFM и даже выложил его на cgi.myweb.ru под именем aa. PHPFM, причём первые две буквы «a» я добавил, чтобы оно было в самом верху списка :). Отголоски этого до сих пор можно найти в сети, правда скачать уже ничего нельзя — сайты с «бесплатным софтом», видимо, на какой-то итерации потеряли сам архив с исходными кодами.

Реализовано всё было очень просто — тот же код работы с папками был примерно такого плана:

Недостатков у этого файлового менеджера было много: он был Web 1.0, работал не совсем корректно и вообще не мог ничего отредактировать в случае, если у пользователя, под которым запущен веб-сервер, не было прав на запись в файлы. Это, кстати, типичный подход для виртуального хостинга — доступ по FTP, из-под другого пользователя (например yuriy), нежели пользователь веб-сервера (например www-data).

2003 год. Версия вторая, улучшенная

Основной причиной, чтобы переписать первую версию файлового менеджера, было моё желание сделать его более «Web 2.0», хотя такого термина тогда ещё не существовало. Я хотел сделать возможность выбирать файлы по щелчку на файл, как в обычном виндовом проводнике, а также сделать поддержку контекстного меню. Эта версия уже кое-где сохранилась (её можно скачать по прямой ссылке, регистрироваться не обязательно). Она, кстати, до сих пор работает (по крайней мере в PHP 5.3 :), но вот верстка и JS затачивались под IE 6, поэтому не вся функциональность будет доступна в современных браузерах. Собственно, там до сих пор каким-то чудом работает открытие контекстного меню по правой кнопке, а также показ информации о выбранном файле во вкладке «Подробно» (реализовано через iframe, поскольку о существовании XMLHttpRequest мир тогда ещё не знал).

Вот пример функции удаления директории, которая в похожем виде до сих пор существует в моём файловом менеджере, почти с теми же ошибками :). В текущей версии эти ошибки не исправлены, потому что я подумываю о том, чтобы опять начать всё с нуля и написать-таки уже наконец достойную версию, которая будет работать действительно хорошо и не будет содержать очевидных ошибок безопасности, а также будет иметь хорошую структуру.

Здесь неправильны, как минимум, 3 вещи:
1) нет проверки результата opendir
2) нет проверки на символические ссылки (а значит, если в директории будет симлинк на «/», то функция начнёт рекурсивно удалять корневую файловую систему, насколько хватит прав :))
3) неверный код чтения директории: функция остановится на файле с именем «0»

2004-2005 годы. Попытки создать третью версию

Идея с «web 2.0» мне настолько понравилась, что я решил пойти дальше, и сделать всё на фреймах, как в настоящем проводнике Windows, а также добавить наконец вид «иконки», а не списка. По сути, я скопировал большую часть поведения проводника, после чего мой JavaScript код превратился в такое мессиво, что я просто не смог это поддерживать, совсем :).

Вот, что я тогда написал на форуме, чтобы не пересказывать:

Господа, я решил (тоже прошло не знаю, сколько времени. ) еще раз учесть все пожелания… И сделать новый PhpFM 3.0 на фреймах (по образу и подобию Проводника). +к тому, сделать поддержку вида не только списком, а еще и в виде иконок. Тот вариант, который сейчас разрабатывается, имеет очень тяжелый, но кроссбраузерный JavaScript (то есть, он работает и в Опере (в настройках яваскрипта нужно разрешить перехват нажатий на правую кнопку мыши), и в Мозилле, и ИЕ). Пока что на стадии разработки, вот то, что сделано:

2006 год. Dolphin (Dolphin.php)

Ещё спустя какое-то время я понял, что уже более-менее набрался опыта (а также всё-таки начал что-то понимать в JavaScript) и теперь могу осилить сделать то, о чём я мечтал — полную копию Проводника, только на PHP :). Вот один из скриншотов той версии:

Файловый менеджер php одним файлом

Элементы меню были декоративные, но кнопки «назад», «вперед» и т.д. были анимированы настолько близко к Проводнику, насколько это вообще имело смысл делать в Web, и насколько у меня хватало умений. На самом деле, даже заброшенный мной PHPFM 3.0 работал настолько похоже на Проводник, что его кто-то «доработал» (дописав отсутствующую функциональность до уровня «лишь бы работало») и установил в качестве файлообменника в каком-то институте. Предыдущие версии PHPFM тоже кто-то устанавливал себе в локальную сеть в качестве файлопомойки для бухгалтерии, поскольку всё было очень похоже на Проводник и людям было очень легко в нём ориентироваться.

2007 год. Смена дизайна из-за боязни реакции копирастов из Microsoft 🙂

Я активно разрабатывал «дельфина» в период с 2006 по 2007 год, и в какой-то момент до меня дошло, что нехорошо копировать чужой дизайн, и что на меня теоретически напасть копирасты, если я продолжу брать элементы интерфейса из Проводника :). Поэтому я решил сменить дизайн, в результате чего файловый менеджер до сих пор находится в недоделанном состоянии, поскольку я не до конца отловил все баги, связанные с его сменой. Собственно, я им особо и не занимался.

Сейчас файловый менеджер выглядит примерно вот так:
Файловый менеджер php одним файлом

Оптимизация производительности

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

1. Минимизация количества операций, совершаемых в цикле чтения директории

Оценка производительности на папке в 50 000 файлов:

488 ms генерация
33.51 Мб памяти
246 Кб в gzip ( + 500 ms на загрузку )
305 ms в браузере
= 1300 мс

+ нет подгрузок данных (вообще)
— самый медленный вариант
— требуется очень много памяти

169 ms генерация
13.48 Мб памяти
2 Кб в gzip
7 мс на запрос в браузере
= 200 мс

+ быстрый старт
— требуется очень много памяти
— долгая и ресурсоёмкая подгрузка данных: сканирование папки заново

460 мс генерация
1.18 Мб памяти
2 Кб в gzip
8 мс на запрос в браузере
= 500 мс

+ легкая и быстрая подгрузка
+ не требуется много памяти
— медленный старт
— хранение промежуточных файлов значительного размера (800 Кб на 50 000 файлов при размере файла директории в 1.6 Мб)

4. Если вы читали код выше, вы наверное заметили, что код сначала был очень простой, потом стал очень сложным (до такой степени, что его невозможно поддерживать), потом стал проще… И конечно же, самая простая идея мне почему-то пришла в голову последней: самый быстрый код — это тот, который делает как можно меньше, и для PHP это очень актуально. Можно заметить, что в именах файлов и директорий никогда не может присутствовать символ «/», поэтому список файлов можно составить в виде строки:

Поскольку в PHP конкатенация является O(1), этот код на PHP, я думаю, работает так быстро, насколько это вообще возможно (в данной ситуации) и потребляет минимально возможное количество оперативной памяти: меньше (без сжатия) сделать очень тяжело, поскольку нужно как-то разделять имена файлов.
Такой код, на самом деле, позволяет открыть папку в 500к файлов, потребляя меньше 32 Мб, причём это с учётом json_encode. Поскольку мы составляем очень простую структуру данных — просто строку, время работы json_encode тоже будет очень небольшим, как и затраты на парсинг со стороны браузера. После получения строки делается split(‘/’) и мы получаем полный список файлов в папке. После этого можно вторым AJAX-запросом попросить информацию только для видимых файлов (можно в ответ также включить первые несколько сотен файлов). Таким образом мы решаем все проблемы, которые у нас были до этого: долгую генерацию списка файлов, неэкономное потребление памяти и неудобства со скроллингом больших списков.

48 мс генерация
1.92 Мб памяти
107 Кб в gzip ( + 200 ms на загрузку )
56 ms в браузере
= 300 ms

+ быстрый старт
+ нет подгрузок данных для имен файлов
+ низкие затраты CPU
— тратит много трафика
— тратит много памяти в браузере

Источник

Веб файловые менеджеры

phpFileManager

Минималистичный интерфейс, зато всего один файл.

Из видимых недостатков не нашел разархивирования файлов.

Файловый менеджер php одним файлом

HTTP Commander

Файловый менеджер php одним файлом

AjaXplorer

Предварительный просмотр и проигрывание мультимедийных файлов непосредственно на сайте. Документы и изображения могут быть изменены прямо в Интернете.

Файловый менеджер php одним файлом

Cloud Commander

Двухпанельный, работает в браузере, оснащён редактором (с подсветкой синтаксиса) и консолью, состоит из клиента и сервера, а написан на JavaScript/Node.js.

Файловый менеджер php одним файлом

MooTools FileManager

Возможности:
Позволяет просматривать файлы и папки на сервере
Позволяет переименовывать, удалять, перемещать (Drag&Drop), копировать и скачивать файлы
Позволяет просматривать превью изображений, текстовых файлов, сжатых файлов или аудио.
Имеет привлекательный интерфейс пользователя.
Загрузка файлов через FancyUpload (интегрированная функция)
Возможность автоматического изменения размера больших изображения при загрузке

Файловый менеджер php одним файлом

PAFM дает пользователю полный контроль над файлами.Редактирование исходного кода может быть сделано с помощью CodePress с подсветкой синтаксиса.

QuiXplorer

В многопользовательском режиме:

Имеются версии QuiXplorer на английском, голландском, немецком, испанском, французском и русском языках.

Файловый менеджер php одним файлом

BytesFall Explorer

BytesFall является доступным через сеть диспетчером файлов, написанным на PHP и JavaScript.

Файловый менеджер php одним файлом

NavPHP

Файловый менеджер php одним файлом

PHP navigator with its unique XP style navigation is written in PHP and AJAX. The main features include multiuser support, Gzip & Deflate webpage, built in HTML and code editor as well as Extract Zip. This web based file manager is completely free.

Key Features: File or Folder can be downloaded as Zip, Zip archive can be extracted to current folder, Key board shortcuts.

iDC File Manager

The iDC file manager is a multiuser file sharing system which can be installed either on Linux or Windows web server. Every format of digital media such as documents, images, audio, video, publishing layout, presentations and PDF files can be saved, shared and managed. The application is driven by MySQL Database.

Key Feature: Hotlink Function with Social Network Support, Monitor User Activity with Built-In Log Viewer. It’s Available in 8 Languages.

FileMan

Relay

The Relay is released under GPL. It is AJAX enabled, also features improved UI and performance, which is ideal for large file sets. Files and directories uploaded into file stores from other means can also be easily handled.

Key Feature: Drag-and-drop files and folders, dynamic loading file structure.

phpXplorer

phpXplorer, as the name suggests is written in PHP. This is a free open source file management system. The file types, property sheets, views and themes are built on its own by modular design. The permission manager restricts the user access to multiple users in a detailed manner.

Key Feature: It has got dialogs for editing HTML, PHP, image, Apache, compressed and email files.

DesktopBrowser

This is a web application which uses SharpKit to maintain client-side code in C#. It is a simple free and open-source file browser project, maintained at Google Code. Local and network drives can be easily browsed. Requirements: NET 4 Framework, IIS Express.

OwnCloud

Getting your own data stored in an open source community had never been so easy and reliable using this file manager. By using this web based file manager you decide with whom to share which information and to what extent. The data can be accessed through web browsers, iOS, Android devices and your desktop and laptop. It supports MS Windows platform.

Key Feature: File sharing, User management, web based file upload and download using a Javascript based file browser.

Seafile

It’s an advanced free to use open source cloud storage through which you can access and store your own data and share it with groups and teams as and when you desire. It can be operated with just about any advanced mobile device, internet browser, desktop or laptop. It is supported by all popular platforms.

PhpFileManager

It is an advanced file management system and that converts information into a single file. Supported by Linux and Windows, you can access your data and share it with your team with just about any mobile or computer devices. You can copy, move, delete, remain and a host of other things with this advanced file manager.

Limpid Browser

It is an open source PHP and MySQL application though which you can store and share your information from just about any server and advanced mobile and computer devices. Supported by Windows and other well known operating system, the encryption ensures that your confidential data is protected by a security code.

Mollify

This is an easy to use file management system that can be operated upon and used with the help of any web server; it’s endowed with flexible privacy policy that ensures that the data can be accessed according to your terms and condition, with different types of permissions granted to different users.

Encode Explorer

It is a file browser written in PHP and it is free for anyone who wants to create and manage files in the cloud environment. The application is loaded with user friendly features through which you can manage all the related functions associated with file management. It can be accessed and operated on Android and other mobile applications, desktop and laptop.

PHPfileNavigator

It is a PHP application which enables you to manage files in a cloud environment and share it with your team or community. Supported by Linux, Windows and smartphone applications, the software is easy to install and use. The encryption ensures that the confidentiality of the information is maintained.

Ajax File Manager

It is a state-of-the-art web file management system that manages your file as effectively as any operating system does. Runs on Windows XP and other well known operating systems. The encryption policy ensures that the data can only be accessed by different systems with permissions issued to different users. It is loaded with a recycle bin feature and fast interaction is possible via AJAX.

KCFinder

It is a well equipped free file browser system and works with Apache 2 web server; it’s also compatible with other well known servers. It integrates PNG watermark support as well as HTML5 drag and drop features. Multiple files can be uploaded and accessed with any advanced mobile, desktop or laptop.

Net2ftp

Monsta

It is an open source file management system that puts FTP file sharing right in your browser. It includes PHP and Ajax source code and is scripted for all types of programmers. Supported by Linux and Windows operating system, you can manage your important documents effectively, it also features multi-language support.

It is a web based file manager written in PHP though which you can upload and download your files, copy and rename it with ease. Works on UNIX operating system. It does not require MySQL, but you can implement one if you require. It carries the GPL license and comprises of an advanced file finder.

Kinky File Explorer

It is a totally free cold fusion based file exploration system that helps you to share your files and information through a read-only directory. It helps you to impart relevant information to your group or community without offering the right for snooping. It integrates an Ajax file loading system.

Limbo Media

A very impressive open source file management software that comes with a beautiful user interface and user management with access control. The tool provides easy ways to manage different file types including images, videos and documents.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *