Http File Upload Server
Home page
 


The HttpFileServer is a Java based mechanism for providing web access to a set of files on a server. This is very similar to Apache Directory Indexing but provides the ability to upload files as well.

Skip the blub - download now

What does it look like screenshot

This service is written for Apache Tomcat and should run ok on JDK1.4 and above, but it has not been tested on lots of different configurations.
I run it on JDK1.4.2 with tomcat 4.1
on both windoze2000 XP and Linux RedHat7 and Fedora Core 2

Dont believe the hype? - try it out P.S. the data gets wiped on the hour so if something disappears don't be suprised (what, doyou think i'm giving away web space ;o) )
There is a version of this page in the 'static' directory (if no one has deleted it) to view it working as an editable webserver
to log in use viewer:password or manager:password

The system has the following features.

  • Upload
  • Download
  • Security
  • Zip Support
  • Text editing
  • Streaming MP3s
  • Mime Types
  • Relative URLs
  • GPL
Feature details
  • Security, the service is protected by webapp security
    • Currently there are three roles viewers, uploaders and managers
    • Viewers - view the files, download, stream playlists(optional)
    • Uploaders - same as viewer plus the ability to upload (but not overwrite)
    • Managers - view, download, upload, overwrite, create directories, delete, edit text files and stream playlists(optional)
  • Zip support - Entired directories can be downloaded as a single zip by clicking on the icon next to every directory.
    Zip files will be generated and then streamed, this potentially can be time consuming if you select a lot of files.
    Zip upload, a zip can be uploaded as a normal file, or optionally, uploaded and expanded on the server automatically. This provides the ability to download your website, work on it locally, and then upload the whole site when it is finished. All this without the need for FTP or any ports open other than 80.
  • Text editing support. If the mime type of a file is text/xxxxx (for example text/html) the file can be edited directly in a browser. This allows managers to make small changes to a site quickly without having to download and upload the file.
  • The ability to stream MP3 playlists to a M3U supporting player e.g. Winamp (optional)
    To use this feature you will need to run it on tomcat, other features should work on any JSP server but this feature uses tomcat's URL session key.
  • This service will work over most firewalls. This allows site managers to edit static sites from within firewalled environments (i.e. at work) or from any browser. (i.e. in a internet cafe)
  • Mime types are respected, so images will display in the browser. Right mouse click to save the file in most browsers.
  • URL based selection - Rather than using HTTP parameters the URL is encoded so relative links work from within HTML pages. e.g /servlet/fs/DIRECTORY/fileName.gif
    This enables the service to work as a normal web server serving pages with embeded images. By simply selecting the directory instead of an html file the directory becomes editable and modifications can be made to the site(provided you are loggid in as a manager). By running the service on a separte URL normal website uses can view the site as usual but the website owner can edit the site from any machine running a normal browser. Editing is protected by username and password and the service can be run over https for added security.
  • The source is open and free. (GPL)

The UI of the test version uses icons designed for Linux KDE, there are alternatives provided in the iconpack module. If you are a graphic designer and would like to submit a skin please get in contact.

 

This service could be used for any or all of the following...

  • Providing a secure editable website, like a wiki for people who are happy to code in html.
  • Providing an editable interface to an existing website (could be PHP or scripted) so it can be maintained from anywhere with a browser.
    e.g. you can fix typos or broken links as soon as you find them rather than waiting to get back to base.
  • Providing public file space for file secure transfers over a firewall, for example a public space to send and recieve files from customers or friends without the size limits of many email accounts.
    The client groups feature (disabled by dsefault) allows you to setup different directories for different groups of clients or friends using the same instance of the server.
    This would be quite handy for large companies spread geographically too, providing secure file space publicly grouped by project.
  • Providing a web site of all your music, but securing it with a password so only you can access it, from anywhere.
    Clearly if you put all your music on the web for public/insecure access, you can expect people to find out, nick it, and for record companies to get annoyed and sue.
    If you secure it no one knows you are doing it, and you are not making music available to the public anyway, however you can listen to your tunes from your mates house.
    This option may be legally dodgy in some places, but no more so than copying file to an MP3 player, I think.
  • Simply putting your files and documents on the net so when you are away from your servers you can still get at files you need. And not have everyone else get access to them.


Turning off security
for viewing files.

It is possible to turn off security for the viewer and/or manager roles. This enables anyone to download the files without logging in.
To do this the web.xml file must be edited.
To make viewing and downloading files available with out logging in simply comment out or delete the <security-constraint> with display name manager, viewer

  <!--security-constraint>
      <display-name>manager, viewer</display-name>
      <web-resource-collection>
        <web-resource-name>files</web-resource-name>
        <url-pattern>/servlet/fs/*</url-pattern>
        <url-pattern>/servlet/m3u/*</url-pattern>
        <url-pattern>/servlet/download/*</url-pattern>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
        <http-method>PUT</http-method>
        <http-method>DELETE</http-method>
      </web-resource-collection>
      <auth-constraint>
        <role-name>manager</role-name>
        <role-name>viewer</role-name>
      </auth-constraint>
      <user-data-constraint>
        <transport-guarantee>NONE</transport-guarantee>
      </user-data-constraint>
    </security-constraint-->
	  






This site (like all good sites) is hosted by
SourceForge.net Logo



  Test HttpFileServer