JumpLoader
Java File Upload Applet

Documentation

Perl upload handler

Perl uploader is contributed by 3rd party and not supported by author of this site.

Below is Perl solution kindly provided by Dave Stahr:

This one is obviously very simple, does no error checking to see if a file already exists, and doesn't handle partitioned uploads or anything else more advanced that I haven't even looked at yet, but should be enough to get someone who knows perl up and running quite quickly.

#!/usr/bin/perl

#Save this script wherever CGI access is allowed on your server.
#This script needs to be executable by the web server user.
#If these two lines confuse you in any way, you might need to ask for support.
#
#Script written by Dave Stahr - Virtual Impressions Incorporated
#                               http://www.virtualimpressions.com


my $LOGFILE = '/tmp/jumploader.log';            #Location of log file

my $SAVEPATH = '/tmp';                          #Location to save files

#---------- You shouldn't need to modify anything below this line ------------#

use CGI;                                        #Requires CGI perl module

my $q = new CGI;

my %keys;

foreach my $param ($q->param() )
  {
  $keys{$param} = $q->param($param);

  my $lt = localtime();

  if ( $param eq 'file' )
    {
    my $remote_file = $q->param('file');
    my $size = 0;
    open(SAVEFILE,">$SAVEPATH/$keys{'fileName'}");

    while (<$remote_file>)
      {
      $size += length($_);
      print SAVEFILE;
      }
    close(SAVEFILE);
    my $lt = localtime();
    open(LOG,">>$LOGFILE");

    if ( ! -d "$SAVEPATH" )
      {
      print LOG "FATAL - File not uploaded; path $SAVEPATH does not exist\n";
      }

    elsif ( ! -e "$SAVEPATH/$keys{'fileName'}" )
      {
      print LOG "FATAL - File not uploaded; hint: chmod 777 $SAVEPATH\n";
      }

    else
      {
      if ( $keys{'fileLength'} != $size )
        {
        print LOG "WARNING - File size mismatch.  Jumploader:$keys{'fileLength'}  Disk:$size\n";
        }
      print LOG <<EOT;
Time: $lt
Filename: $keys{'fileName'}
Size: $size
IP: $ENV{'REMOTE_ADDR'}
Browser: $ENV{'HTTP_USER_AGENT'}
--------------------------------------------------------------------
EOT
      print $q->header, $q->start_html, $q->end_html;
      }

    close(LOG);
    }
  }