Web www.gerd-tentler.de
Version 10.54 (released Feb. 14, 2023) [Download]

Introduction

Use this application to manage files and directories on your webserver or any FTP server. You can create, rename, move and delete directories, upload, download, edit, rename, move, copy, delete and search files, and change file and directory permissions*. It's also possible to play audio/video files and view preview thumbnails of images.

Have a look at the following examples (most file actions are disabled for security reasons, though). The first example shows the default view with directory tree and log window:

×
×
×
×

×
×
 
×

file name => file_name
FileName => filename
×
file name => file_name
FileName => filename
×

×

×
file name => file_name
FileName => filename
×
×
×
×

The next two examples are "minimized" views; the first one lists all MP3 files, while the second one shows preview thumbnails from all JPG files - this time without title bar. In both cases, the search function has been disabled to "lock" the initial search result:


Please have a look at the config.inc.php file to find out how FileManager can be adapted to your needs.

FileManager can be used as a stand-alone application, but it's also easy to integrate it into your own website. The above examples show that it is no problem to create as many FileManager instances as you like, each one with its own specific settings. Just have a look at the usage section and the source code of filemanager.php to see how you can do this.

FileManager works fine with FTP connections. Please note that if you don't set up an FTP connection in the configuration, FileManager will use the local file system instead. In this case it can only access directories and files for which PHP has at least read permission; if you want to upload, edit, rename, move, copy or delete files, or change file permissions*, PHP must also have write permission for these files or directories.

This software needs PHP 5 or higher.

Features

  • Works with FTP servers (UNIX and Windows) and local file system.
  • Supports multiple languages.
  • Can be easily adapted by modification of configuration file and CSS file.
  • Can be easily integrated into your website - even multiple instances.
  • Supports detailed view and icon view.
  • Built-in editor for text files with realtime syntax hilighting.
  • Built-in image preview with thumbnails.
  • Built-in action log.
  • Integrated file and directory search.
  • Integrated directory tree for quick directory switching**.
  • Supports automatic setting of permissions when creating new directories or saving files*.
  • Supports automatic modification (to lowercase, replace spaces) of filenames for uploaded and downloaded files.
  • Images can be resized automatically before they are saved.
  • Multiple files can be uploaded and downloaded at once.
  • Files can also be saved from URLs.
  • Supports automatic backup creation (versioning) when saving files.
  • Supports restoring of deleted files.
  • Supports password protection (login).
  • Supports hiding of system files, files with arbitrary extensions, and whole directories.
  • Supports quota setting.
  • Works with UTF-8 and other character sets.
  • Integrated media player for audio and video files.
  • Can view documents (Word, Excel, PDF, etc.) with Google Docs Viewer.
  • Provides hooks for upload and download.
  • Smart refresh feature keeps all users updated.
* On Windows systems changing of file permissions doesn't work properly. This is not a restriction of this software.

** If the number of directories is too big, it will take some time to load. This goes especially for FTP connections. In this case it is recommended to disable the directory tree.

File Search

You can use FileManager to search files and directories. It will search all directories recursively, starting in the directory that is currently viewed. At the moment, it is only possible to search for file or directory names. Wildcards like "*" are not supported; FileManager will find all files and directories containing the search string in their name. For instance, if you search for "file", the files "filemanager.php", "file.gif", etc. will match your search.

While FileManager views a search result, file upload is disabled, and you cannot create new directories. If you want to do so, please return to your current directory listing first. Please note that this is not possible if you disabled the search function, but told FileManager to start with a search - in this case, the current search result will be "locked" and file upload and directory creation won't be possible.

Upload Engines

File upload with PHP has two drawbacks: usually the file size is limited (default is 2 MB per file and 8 MB per POST request), and it is not possible to view a progress bar - at least not without APC extension (NOTE: you need PHP 5.2+). The size limit can be changed for instance in the php.ini file by the server administrator, but this will also affect all other PHP applications. (Changing this value on a per-directory-basis is also possible, see php.net for detailed information.) For this reason, FileManager comes with several upload engines.

The Java Uploader

Unfortunately, most browsers don't support Java applets anymore, so the Java uploader has been removed in version 10.50.

The JavaScript Uploader

If you don't need to upload big files, you can try the integrated open source FileDrop uploader, which views a progress bar, supports drag and drop and multiple file upload. It should work with all browsers that support HTML5. Please note that when uploading several big files at once, the browser may crash - if this happens, try to upload the files one by one or use another upload engine.

The Perl Uploader

Alternatively FileManager can also upload files via Perl and view a progress bar while uploading. This requires however that Perl is installed on your server, and that the Perl scripts in FileManager's cgi directory can be executed. Please have a look at the usage section to see how this can be done.

The PHP Uploader

This is the basic uploader that should only be used if the other upload engines don't work for you. It only requires PHP on your server, but you will have to live with a file size limit (depending on your PHP configuration) and without a progress bar (unless your browser views it by default).

Authentication

If you want to use the Perl uploader and installed FileManager in a directory that requires authentication, you must set the authUser and authPassword variables in FileManager's configuration file.

Smart Refresh

If two or more users share the same directories and files, usually they don't see the modifications of each other until they refresh their directory listings manually. FileManager comes with a smart refresh feature that can do this automagically if any user has made modifications.

However, keep in mind that FileManager enables you to set an individual data directory for each user. In this case, the smart refresh function won't work properly. There might be other cases where the smart refresh fails, but remember that you can still refresh your FileManager manually. ;-)

The smart refresh feature is disabled by default, because it puts more load on the server and produces more traffic. You can enable it anytime in the configuration file or at runtime (have a look at the usage section for more info). Please note that this feature is experimental, i.e. there might be unexpected behavior.

Audio Support

The integrated media player can handle MP3, MP4/AAC, WAV and OGG audio files if your browser supports them via HTML5 audio. For MP3 files, the niftyPlayer serves as a fallback, but it requires a Flash plugin.

Video Support

The integrated media player can handle MP4, WebM and OGG video files if your browser supports them via HTML5 video. For MP4 and FLV files, a free FLV player serves as a fallback, but it requires a Flash plugin. FileManager can also view SWF files if your browser has a Flash plugin.

A Quick Note On ID3 Tags And Preview Thumbnails

It is only possible to view ID3 tags and preview thumbnails from files of the server's local file system. This is no problem when FileManager uses the local file system, but in FTP mode these files must first be copied from the FTP server. This can take quite some time especially when the file size is big and/or there are a lot of files in a directory. In this case, it is recommended to disable image preview and ID3 tags. This can be done in the configuration file (variables enableImagePreview and enableId3Tags).

A Quick Note On File Download

When FileManager runs in FTP mode, files must first be transfered to the local system before they can be sent to the browser. This can take some time especially with big files. To avoid this, FileManager uses the asynchronous FTP mode: while loading a file from the FTP server, it can start to send it to the browser without having to wait until the transfer is complete.

About Security

There are some things that you should keep in mind when using this application in order to maintain your server's security:
  • Never give untrusted people access to your FileManager. Implement it into your existing user management or install it in a directory that requires authentication or use at least the password protection of FileManager itself.
  • If you use FileManager in FTP mode, do not install it on your FTP server. Install it on your webserver instead.
  • Do not set FileManager's tmpFilePath variable to a directory within your webservers document root. It is recommended to create a dedicated directory for this purpose. Keep in mind that it must be big enough to handle your file uploads and FileManager's cache.
  • Unless you want to grant unlimited access to all file types, use the allowFileTypes or the hideFileTypes variable to limit access to certain file types. These settings also affect file uploads. For instance, if you want to disable viewing, uploading and editing of PHP files, add the extension "php" to the hideFileTypes variable.
  • FileManager comes with a lot of options (enable/disable file upload, download, editing, etc.) that can be set individually for each user (or for all users within the configuration file). Use them wisely.

Known Issues

Here's a list of things that don't work on some systems or with certain configurations:
  • If SSL is used, FileManager might not work properly in Internet Explorer. This seems to be a browser problem, though. It might help to tweak your SSL server configuration like this:
    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
    
  • Thumbnail creation of big images might not work on some servers. This also goes for automatic resizing when uploading images (server returns error 500 and the image won't be saved). Increase the memory size limit in your server's PHP configuration and restart your web server.
  • Conversion to CP437 (for filenames in a ZIP archive) doesn't work on my web server (SunOS), but it does work on my local server (Windows). This means that file and directory names in ZIP archives created by FileManager may be corrupted if they contain non-ASCII characters.
  • The FileDrop upload engine may have problems with big files - if it doesn't work for you, use another upload engine.
  • FileManager does not work well with Internet Explorer 7 (or less). Use the current version or at least version 8.
  • If FileManager doesn't view properly like this, it can't detect your web path. In this case, just set the fmWebPath variable in the config file manually.
  • If your browser doesn't play FLV or MP4 videos, update the Flash plugin of your browser.

Change Log

Version 10.54:

* Refactored code for PHP 8.

Version 10.53:

* Added CSS fix to deactivate horizontal scrollbar.

Version 10.52:

* Minor optimization for UTF-8 conversion.
* Minor fix for avoiding PHP notice.

Version 10.51:

* Some code and performance optimizations.

Version 10.50:

* Removed the Java uploader, because most browsers don't support Java applets anymore.

Version 10.49:

* Added small patch for PHP 7.2.
* Changed default upload engine to JS.

Version 10.48:

* Fixed FLV/SWF player.
* Use SWF player as fallback for HTML5 player.
* Use proper content type header for JSON content.

Version 10.47:

* Updated FileDrop.
* Updated JUpload.
* Minor optimization for compatibility with PHP 7.

Version 10.46:

* Fixed URL to Google Document Viewer and put it into the config file.
* Some minor optimizations.

Version 10.45:

* Minor optimization for compatibility with PHP 7.
* Fixed captions in detailed view.

Version 10.44:

* Optimized viewing/editing of text files by trying to detect the original file encoding.
* View detected file encoding in document viewer and text editor.
* Various minor optimizations.

Version 10.43:

* Fixed viewing/editing of text files.

Version 10.42:

* Fixed encoding/decoding of file paths.
* Added empty value to "select all" checkbox.
* Bugfix: If only certain file extensions are allowed, show deleted files with these extensions, too.

Version 10.41:

* Prevent PHP notice when downloading file with unknown MIME type.
* Removed duplicate MIME type for .mif files.

Version 10.40:

* Added support for custom date-time format in listing entries.
* Added some MIME types.
* Minor optimizations.

Version 10.39:

* Fixed FileManager height when resizing automatically.
* Don't resize if keyboard of mobile devices is active on login screen.

Version 10.38:

* Added "select all" checkbox in root directory.
* If FileManager size is set to % (e.g. "100%"), calculate it from the parent element if it has a fixed size;
if not, calculate it from the window size (the old behavior).

Version 10.37:

* Removed tmp folder from filemanager directory for security reasons.
* Added tmp directory path to the debug info.
* Fixed mouse cursor in title bar.

Version 10.36:

* Fixed directory tree cache.
* Added debug info that indicates if the directory tree has been initially loaded from cache.
* Fixed corrupted non-ASCII characters in debug info.

Version 10.35:

* View error message if web path is invalid.
* Fixed scrollTop issue that occurred in latest Chrome browser.

Version 10.34:

* Bugfix for renaming files/directories containing special characters.

Version 10.33:

* View PDF documents even if Google document viewer is not available; requires Adobe Reader, though.
* Removed useless timezone setting. This should be set in your php.ini file.
* Added decimal to usage/quota info.
* Fixed JavaScript error when directory tree is disabled.
* Minor optimizations.

Version 10.32:

* Added quota support.
* Added extension log to the list of editable text files.
* Added timezone setting.
* Added usage info in directory tree.
* Fixed JSON error when directory creation failed.
* Minor optimizations.

Version 10.31:

* Fixed infinite loading loop when a directory contains only hidden files.

Version 10.30:

* Do not deactivate right-click context menu on touchscreen devices.

Version 10.29:

* Minor bugfix.

Version 10.28:

* Updated JavaScript uploader (FileDrop).

Version 10.27:

* Added fix for right-click context menu (didn't work anymore in new Chrome version).
* Fixed context menu position.

Version 10.26:

* Fixed column width in detailed view.

Version 10.25

* Optimized ID3 tag fetching.
* Fixed directory tree reloading.

Version 10.24

* Added possibility to toggle media player mode between HTML5 and Flash.

Version 10.23

* Replaced OOS FlvPlayer with FLV player from www.webestools.com.
* Minor optimizations.

Version 10.22

* For jQuery users: Replaced JavaScript function $ with $$.
* Optimized media player.
* Added config variable forceFlash for media player.

Version 10.21

* Play MP4 videos with HTML5 video element if possible.
* Do not reload after resize.

Version 10.20

* Added config variable fmCaption.
* Added number of files in title bar.

Version 10.19

* Added fix for avoiding PHP strict notices on some systems.

Version 10.18

* FileManager will try to create its tmp directory by itself now.
* Renamed config variable startDir to rootDir.
* Added config variable defaultDir.
* Highlight currently selected folder in directory tree.

Version 10.17

* Bugfix for video player.
* Added warning message if tmp directory is not writable.

Version 10.16

* Added fix for browser context menu in Chrome.

Version 10.15

* Fixed icons for files with uppercase extension.

Version 10.14

* Perl uploader: Fixed upload progress window.
* Directory tree: Don't show total number of files if not all file types are visible.
* Minor bugfix.

Version 10.13

* Fixed missing title bar icons in IE.

Version 10.12

* Fixed directory tree: Handle allowed and hidden directories properly.

Version 10.11

* Added some error messages if certain AJAX requests fail.

Version 10.10

* Added fix for AUTH_USER in session save path.
* Use TXT icon as default icon for ASCII files.
* Updated SoundManager.
* Media player: View ID3 tags via SoundManager.

Version 10.9

* Fix for Java uploader: Create folders correctly when uploading multiple directories.

Version 10.8

* Fix for Java uploader: Only replace spaces with underscores in directory names if $replSpacesUpload is set.
* Added possibility to modify e-mail subject line for upload and download info.
* Added possibility to set a custom JavaScript function that will be called when a file is clicked.

Version 10.7

* Always replace spaces with underscores in file and directory names if $replSpacesUpload is set.
* Always convert file and directory names to lowercase if $lowerCaseUpload is set.

Version 10.6

* Keep sub folder structure when using the Java upload engine.
* In sub folders, all entries can be selected at once now.
* Bugfix: Don't view context menu when clicking on a checkbox.
* Bugfix: View correct context menu after returning to a parent directory.

Version 10.5

* Fixed mail on upload feature.

Version 10.4

* Bugfix: Check if $id is not empty in FM_Event::_refresh method.
* Bugfix: Only reload directory tree if needed.

Version 10.3

* Minor bugfix: Removed $this in static method FileManager::error.
* Added workaround for session garbage collection on Debian systems.
* Bugfix: Don't view context menu when left-clicking on "..".

Version 10.2

* Added icons for global actions to title bar.
* View context menu when clicking on FileManager container (if right-click is disabled).
* Fixed "empty" file selector fields in Chrome browser.

Version 10.1

* Bugfix: View directory tree when moving/copying files.
* Optimized directory tree update.
* Optimized smart refresh.

Version 10.0

* Code refactoring for PHP 5.
* Added JavaScript uploader (FileDrop).
* Added audio player with ID3 tag support.
* Added HTML5 video support with Flash fallback.
* Added recursive directory deletion.
* Added support for directory restoring.
* Added smart refresh.
* New icons.
* Lots of improvements under the hood.

Version 9.12

* Bugfix: Update list view icon in title bar when switching list view.

Version 9.11

* Bugfix: Resize FileManager properly when directory tree has fixed width.

Version 9.10

* Resize FileManager, too if browser window is resized.
* Several bugfixes.

Version 9.9

* Added possibility to set width and height by percentage.
* Added possibility to hide the title bar. Note that some functions won't be available then.

Version 9.8

* Text editor opens in new "window" now (like document viewer).

Version 9.7

* Added possibility to disable file cache.
* Bugfix: Files were not removed properly from cache in FTP mode.

Version 9.6

* Added support for bulk moving of files and directories.

Version 9.5

* Added support for touchscreen devices.
* Updated SoundManager.

Version 9.4

* Added fixed table header in detailed view. In IE 7 standard mode it doesn't view properly, but in
quirks mode it views ok. No problems with IE 8 and 9, though.

Version 9.3

* Important bugfix: Bulk delete caused JavaScript error.

Version 9.2

* Added support for zipped bulk download of files and directories.
* Bugfix: Set session save path if PHP_AUTH_USER is set.
* Optimized download mail notification.

Version 9.1

* Important bugfix: Some dialogs caused a JavaScript error because of a PHP warning inside the JSON string.

Version 9.0

* Important bugfix: Upload via Perl didn't work if temporary directory was not the default directory.
* Bugfix: View filename in error message if upload fails.
* Bugfix: Renamed icon "exe.gif" to "program.gif".
* Added support for right-click context menu - does not work with Opera, though.
* Lots of improvements under the hood.

Comments