#!/usr/bin/perl -w
use strict;
# make html/forms easy to deal with
use CGI;
# report errors in the browser
# (remove from production code)
use CGI::Carp 'fatalsToBrowser';
# create new CGI object
my $q = new CGI;
if ( ! $q->param() )
{
# first run, so present form
print
$q->header,
$q->start_html,
$q->start_multipart_form,
$q->filefield('file'),
$q->br,
$q->submit('Upload'),
$q->end_form,
$q->end_html;
}
else
{
# file uploaded, so process it
# read filehandle from param and set to binary mode
my $filehandle = $q->param('file');
binmode $filehandle;
# open file for output. Change this to suit your needs!!!
open OUT, "> /path/to/local/filename" or die $!;
binmode OUT;
# process $filehandle
{
my $buffer;
while ( read $filehandle, $buffer, 1024 )
{
print OUT $buffer;
}
}
close OUT;
# show success
print
$q->header,
$q->start_html,
$q->p('File uploaded'),
$q->end_html;
}