/ifm

Improved File Manager

Primary LanguagePHPMIT LicenseMIT

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:

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.