File Manager and Editor
If you use this project, don't forget to donate to support its development!
- Folder and File Explorer to navigate, manage (move, copy, delete), upload, and download files and folders.
- Tabbed, full screen, fully configurable code editor + file/embed previewer.
- Mobile-friendly defaults. Edit code even on a phone.
- Generate basic HTML embed codes or URLs for use on a website.
- Easy to install on any PHP enabled host.
- Lots of keyboard shortcuts.
- Very fast and lightweight.
- It might even become your favorite browser-based tool.
- Has a liberal open source license. MIT or LGPL, your choice.
- Designed for relatively painless integration into your environment.
- Sits on GitHub for all of that pull request and issue tracker goodness to easily submit changes and ideas respectively.
Download or clone the latest software release. Transfer the files to a web server directory of your choosing.
Visit 'install.php' with a web browser to start the installer. The installer provides a guided interface for setting up the application. While File Manager does come with a basic login system, it is recommended that you use your own existing login system by creating an appropriate 'index_hook.php' file to control user access to the tool. After installation completes, don't forget to secure the main directory on the server.
If users won't need the tabbed interface to edit or preview files, set the "Use Tabbed Editor/Viewer" feature to "No" during installation (or modify the 'config.php' file later). Doing so will make the Folder and File Explorer widget instance fill the entire space and disable opening of files in the tabbed editor/previewer as well as disable loading of the ACE editor components. Useful for when file management is needed but not tabbed editing/previewing.
This section provides an overview of how to get started embedding this software into another software product. One possible reason for wanting to embed this software might be to create isolated, per-user directory storage for managing files within an existing interface but the user doesn't need to always load this software (e.g. an iframe that gets injected into the existing DOM when a user activates a hyperlink).
The 'index_hook.php' file can be used to validate that the user is signed into the main software product and make appropriate adjustments to the global
$config array. Also, the following two functions may be defined to more precisely control the actions of the widget on both server and client sides with minimal effort:
- ModifyFileExplorerOptions(&$options) - Receives the options array that will be passed to
FileExplorerFSHelper::HandleActions()for optional modification.
xhrparammap(e.g. a user ID).
Obviously, server-side code should always validate all incoming requests such that the user actually has access to a resource.