IFM - improved file manager
about
The IFM is a web-based filemanager, which comes as a single file solution using HTML5, CSS3, JavaScript and PHP.
The IFM uses the following resources:
- ACE Editor
- Bootstrap v3
- custom icon set generated with Fontello
- jQuery
- Mustache
features
- create/edit files and directories
- copy/move files and directories
- download files and directories
- upload files directly or via URL
- extract zip archives
- change permissions
- image preview
requirements
Client | Server |
---|---|
HTML5 and CSS3 compatible browser | PHP >= 5.5 (only if using auth; if not PHP 5.4 works either) |
activated JavaScript | optional: cURL extention (for remote upload) |
installation
Just copy the ifm.php to your webspace - thats all :)
key bindings
- e - edit / extract current file
- hjkl - vim-style navigation (alternative to arrow keys)
- g - focus the path input field (i.e. "goto")
- r - refresh file table
- u - upload a file
- o - remote upload a file
- a - show ajax request dialog
- F - new file
- D - new directory
- space - select a highlighted item
- del - delete selected files
- Enter - open a file or change to the directory
configuration
The configuration is located at the top of the script. The options are commented and named laconically. If you have any questions write me an email.
authentication
The IFM offers a simple authentication feature using the configuration keys auth
and auth_source
. You can configure it like this:
"auth" => 1,
"auth_source" => 'inline;<username>:<password_hash>',
In the example above the user and password are declared inline. You can also use a file (which should lie out of the $DocumentRoot of the webserver):
"auth_source" => 'file;/path/to/file',
The file should contain ONLY ONE LINE:
<username>:<password_hash>
The password hash has to be a hash generated by PHPs password_hash()
function. The default credentials are "admin:admin".
screenshots
issues
Currently there are no known issues. If you find any flaws please let me know.
security information
By default, the IFM is locked to it's own directory, so you are not able to go above. You can change that by setting the $root_dir in the scripts configuration.