Softpanorama
(slightly skeptical) Open Source Software Educational Society

May the source be with you, but remember the KISS principle ;-)

Google   


Softpanorama University Library

The Orthodox File Manager (OFM) Paradigm

by Dr Nikolai Bezroukov


 

 Prev Contents  Next

Ch. 7: Web-based client-server implementations and Java-based Orthodox File Managers

Introduction

Starting from version 3 Norton Commander has client-server capabilities (initially via serial null modem line). Now those capabilities are reimplemented using more modern technology.  For example any CGI-based OFM is almost infinitely portable: all you need is some basic web-server and browser. Those two can be found for any platform.

The second approach for the creating of truly portable OFM is to use Java. The OFM then can be split into two parts communicating using HTTP or HTTPS and thus the client can run on windows while the server can be on Unix. This is an interesting alternative for administering servers over dial-up lines to VNC as bandwidth requirements are much lower.  Also keyboard emulation can be perfect.

Another reason is the crysys of several implementation, like Midnight Commnader, which became a complexx mess of different libraries that are typical only for Linux. In this case using Java-based OFM like muCommander along with vnc represents more portable solution as long as JVM is already installed.  This is true, for example for Solaris.

CGI-based

Drall

Drall by Henrik Edlund is Web-based implementation of OFM. Current version is 1.16.0.0. Very interesting idea and one of the two top news for 1999(see also news item about CGI-based implementation). Platforms: Linux and Perl (any system supporting perl)

Drall allows users to access their directories and files remotely without the need of using insecure ftp and telnet. It enables the user to treat the remote file system as if it was on their local hard disk trough a normal web browser. The interface resembles the well known Norton Commander (of DOS fame) and Midnight Commander (of UNIX fame). Drall relies on the server's HTTP authentication and SSL for security. Dual-frame interface makes it easy to overlook file system and the modular design means you only use the features you need. Written in Perl for easy customization and expansion.

SiteMgr

SiteMgr - a web site manager. This CGI script will perform most of the file operations required for web site maintenance. You can use it to copy, move, edit, delete and upload files, and to create, move and delete directories. Installation can be done by the user or at the system level.

Easy file manager

Easy File Manager allows: the creation of user groups, limiting files size and types on each user account, uploading multiple files from a local computer, URLS, or FTP sites, and management of web protection for certain folder types, among others. Easy File Manager also allows the extraction of archives, editing of existing files, and file archiving, among others.

 Platform(s): Perl 5.005 or higher, Unix, CGI access

efileman

efileman is a web based file management solution written in perl with the following features: create, copy, move, rename, edit, delete, upload, download, zip, unzip or change permissions of files and directories; multifile operations; multiuser access, password protected with one or more entry points in a directory structure; full skinable, choose a design or create your own; disable or hide functions generally or per user web based user administration; email interface for communication between administrator and user, works with sendmail and the like or SMTP; multilanguage support; works with files inside and outside the html root, in last case the full path will be hidden; extra script part for automatic user account creation.

WebRSH

WebRSH is a CGI program which implements a general purpose web-based computing shell. It provides a command line interface, file manager, text editor, and a few other basic things, while being highly configurable and adaptable to various tasks. It can replace, to some extent, rsh, telnet, and ftp daemons.

WebRFM (Web-based Remote File Manager) is a CGI-Perl program aimed at providing a single solution for remote web-based file management. It can replace traditional FTP-based access for that purpose. It is suitable for managing websites, as well as for more general purpose file management tasks.

December 18, 1999 :

 

December 7, 1999 :

WebRFM 0.3b is now available. The main changes are listed in the changelog.

July 15, 1999 :

Glenn Ellingson is working on a modified version of WebRFM that adds some functionality (locking capability and some other things). His geeWebRFM variant can be found at the geeWebRFM site.

July 10, 1999 :


What is it?

WebRFM (Web-based Remote File Manager) is a CGI-Perl program aimed at providing a single solution for remote web-based file management. It can replace traditional FTP-based access for that purpose. It is suitable for managing websites, as well as for more general purpose file management tasks. WebRFM combines a "visible" HTML 3.2 compliant form-based layer (which is in the spirit of the tools currently provided by many large hosting services) along with a "hidden" direct HTTP layer that implements a class 1 WebDAV server. Support for some legacy HTTP methods (which are essentially borrowed from AOLserver and Netscape's Enterprise server) is also provided. While WebRFM can be installed and used by individual users, it is specifically designed to provide a secure system-wide solution that is suitable for usage by ISP's, web-space providers, etc. WebRFM currently runs on UNIX/Linux systems.

WebRFM's "visible" layer provides basic file management capabilities (including form-based file uploading and a built-in text editor) using any HTML 3.2 compliant web browser. The "hidden" layer provides server-side support for many existing clients, ranging from simple PUT-based publishing support for clients such as Amaya , StarOffice , and Netscape's Composer , to full fledged file management capabilities with clients such as AOLpress , Cadaver , DAV Explorer , and the Web Folders feature of Microsoft's Internet Explorer 5. Additional clients that work with WebRFM include SiteCopy , Microsoft's Office 2000 applications (they work with the Web Folders), and Netscape's Communicator Roaming Profiles.

WebRFM implements a virtual-root mechanism, such that each user's access is restricted to his own area (home directory, by default), and it is designed to run in the user's security context (UID/GID) such that OS-based access control and quota limits are also being imposed. A special setuid wrapper to enable this is included. Other wrappers (such as the Apache suEXEC wrapper) can also be used.

WebRFM is free software distributed under the terms of the GNU General Public License.

For more information, you can view the readme file. We also have a very rough static demonstration of WebRFM's primary form-based interface. At the primary site, there is also a Read-Only Live Demonstration.

WebRFM is a relative of WebRSH.

 

Java-based OFMs

muCommander

muCommander  is Java OFM without client-server capabilities. Actively maintained. It is pretty stable and contain most basic feature of OFM although it is far from compliance even to OFM standard 1999

muCommander is a cross-platform file manager. It features a Norton Commander style interface and runs on any OS supporting the Java 2 Platform, Standard Edition (Windows, Mac OS X, Solaris, Linux, *BSD...).

Here's a short list of what you'll find:

Ragework

RageWork 2.4 takes your resources in the next level RageWork is a cross-platform file manager designed to manage your files and documents and do a lot of cool things User Interface Simple, Multilingual, Skinable, English and Polish languages support
It could replace standard Explorer and other file manager Over 30 new features were added. You need RageWork 2.4!!! Basic operation on files

fmweb

[Sept 17, 2003] fmweb - the universal web-based file manager -- not very portable (does not work on Win32).

fmweb is a web-based filemanger written in Java. It can be used to manage the local filesystem or via the TCP/IP network the filesystems of remote machines.
The communication is via HTTP or HTTPS. fmweb has a built-in WWW server.
Although fmweb is a platform-independent java application, it offers many functions that specialized file managers for the operating system provide.
fmweb is a multi-user application, for each user a "document root" can be defined.
fmweb's picture browsing and manipulation functions allow to use it as a web picture album.
fmweb can be used by webspace providers to give the users simple access to their files.
This latest version has been tested on Linux, Windows/NT, Windows 2000 and SUN Solaris. Previous versions also worked on AIX and OS/2 and the new version should work on these platforms too.

JFM - Java File Manager

 freshmeat.net Java File Manager 0.5

About: JFM is an Windows Commander, Krusader, MC, Norton Comander, etc. clone, but written entirely in Java. It has no native parts, and is intended to remain that way. You can use the same file manager in every OS that you run, not having to get used to a new file manager when you boot a new OS.

FileManager servlet

This Java(tm) servlet implements FileManager. You can use this servlet for example for remote site management: upload/download files, copy/move files, edit files etc. The main advantage is the usage HTTP protocol only for access to your host. So this approach is free from any firewall's restrictions.

How to use it:

a) copy fmanagerPackage.jar into WEB-INF/lib

b) describe FileManager servlet in web.inf file:
 


    <servlet>
     <servlet-name>FileManager</servlet-name>
     <servlet-class>com.jsos.fmanager.FileManager</servlet-class>
     <init-param>
      <param-name>config</param-name>
      <param-value>path_to_your_configuration_file</param-value>
     </init-param>
    </servlet>

c) define a mapping for FileManager servlet in your web.xml file.
 


    <servlet-mapping>
     <servlet-name>FileManager</servlet-name>
     <url-pattern>/servlet/FileManager</url-pattern>
    </servlet-mapping>

now you can run this servlet:
 

http://your_host/servlet/FileManager

 or

http://your_host/servlet/FileManager?some_your_directory

Parameter config is optional. This parameter lets you define some configuration settings as an initial parameter for your servlet. You must set a path to the configuration file as an initial parameter for FileManager servlet.

Configuration file is a text file, each line describes one parameter in the form of

    parameter=value

Empty lines and any line starts with # or // are ignored.

Current version supports the following list of parameters:

# base (initial) directory. By default it will be the root directory of your servletunner.
dir=your_directory

# title (by default is empty - no title)
title=My Files

# style. Describes a link for your CSS style file. By default is empty. E.g.:
style=/css/mystyle.css

# background color (by default is #3366FF)
bgcolor=your_color

# foreground color (by default is #FFFFFF)
fgcolor=your_color

# color for visited directories (default is #FFFF00)
visicolor=your_color

#font size (by default is current browser's font)
size=your_size

#font face (by default is current browser's font)
face=your_font_face

# file extensions for visible files. Here you can set commas separated
# list of extensions. Only such files will be visible. By default
# this parameter is empty (all files are visible)
show=txt,xml,ini

# file extensions for text editor. Here you can set commas separated list of
# extensions. All such files are editable through this servlet.
# By default it is:  txt,htm,shtml,html,java,jsp,cpp,h,jsp,pl,sh,csh,xml,bat,ini
# E.g. :
edit=log,ini,htm,,txt

# head. You can set here some file contains any html-code. This code will be
# outputted at the beginning of the each page. So you can set for example some banners.
# By default this value is empty
head=path_to_your_file

# Look and feel mode. By default it is 1 (list of files like Norton Commander for example)
# 2 means Explorer like view
mode=1

# security mode. Default value is 0 - user may see any available directory
# on your server. If you set it to 1 user may see only initial
# directory and any directory below
security=1

# enable/disable functions. Possible values are 1 (enabled) or
# 0 (disabled). By default all actions are enabled.

# enable/disable uploading. Default value is 1
upload_enabled=1

# enable/disable edit. Default value is 1
edit_enabled=1

# enable/disable create directories
mkdir_enabled=1

# enable/disable copy files
copy_enabled=1

# enable/disable move/rename files
rename_enabled=1

# enable/disable delete files
delete_enabled=1

# how to open files. Default value is 0 - open in place, 1 - open in the
# separate window
window=0

# maximal size for uploaded file (in bytes). By default size is unlimited
maxFileSize=10000

# authorization flag (See Authorization section below)
authorized=attribute_name

# login page
login=your_page

# Date format. By default will use full date.
# You may set here format for date. E.g.:
date=dd/MM/yyyy

# localization support. You can set character encoding for input parameters
# here. Default value is ISO-8859-1
encoding=Cp1251
 

Authorization

You may incorporate this servlet into your portal where your users will be authorized. In order to prevent access to files from not authorized visitors you may use authorized parameter in your config file. Servlet assumes that your authorization procedure will put some object into session (as a flag for authorized users). And name for this object should be described for FileManager as a parameter authorized. Servlet checks session and if there is no such attribute than request will be forwarded or redirected to the page, described as a parameter login.

If login value starts with http than request will be redirected to that site. Otherwise servlet assumes a local resource and forwards request.

Note:

1. You can save such configuration file anywhere on your server. Just use the proper path for setting servlet's parameter. Short path (just name of the file) means that your configuration file is saved under the root (docBase) directory of your container.

2. Evaluation version adds an exta © information to the edited file and restricts size for the uploaded files.

 

    For downloading:   fmanagerPackage.jar

    Sample of config file: fmconf

MCJ

mcj is a Midnight Commander clone. It links to Ncurses via the Cygnus Native Interface and includes Doxygen documentation.

MCJ is a Midnight Commander clone expressed in Java as supported by the Gnu Compiler for Java (GCJ). No Java runtime or JDK is required. Mcj links to Ncurses via the Cygnus Native Interface. Doxygen provides nice documentation for reusable projects.

 

PHP-based

While PHP based OFM are WEB based they are discussed in the previous chapter as PHP is a scripting language, not that different from Perl, Python and Ruby,

 

 Prev Contents  Next

Copyright © 1996-2007 by Dr. Nikolai Bezroukov. www.softpanorama.org was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. Submit comments This document is an industrial compilation designed and created exclusively for educational use and is placed under the copyright of the Open Content License(OPL). Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

Standard disclaimer: The statements, views and opinions presented on this web page are those of the author and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.

Created Jan 2, 1997.  Last modified: February 28, 2008