# UploadApp.pm # Example showing how to upload files with CGI::Application package UploadApp; use lib qw(/home/redantig/perl /home/r/redantig/redantig/perl); use strict; use base 'CGI::Application'; use HTML::Template; use CGI::Carp qw(fatalsToBrowser); #sub cgiapp_init { # Optional application init (such as DB connect) #} sub setup { my $self = shift; $self->start_mode('mode1'); $self->run_modes( 'mode1' => 'upload_mode1', 'mode2' => 'upload_mode2', ); } #sub teardown { # Optional application shutdown (such as DB disconnect) #} # HTML form sub upload_mode1 { # Open the html template my $template = HTML::Template->new(filename => 'uploadapp1.tmpl.html'); return $template->output; } # Show uploaded file's contents sub upload_mode2 { # Get CGI query object my $self = shift; my $query = $self->query(); # Get filenames my @uploaded_files = (); # initialize an array to hold your loop my @filenames = $query->param('uploaded_files'); foreach my $filename (@filenames) { my %file; # get a fresh hash for the row data if ($filename){ $file{NAME} = $filename; $file{TYPE} = $query->uploadInfo($filename)->{'Content-Type'}; my ($bytesread, $contents); while ($bytesread = read($filename, my $buffer, 1024)) { $contents .= $buffer; } $file{CONTENTS} = $contents; # $file{CONTENTS} = 'No contents yet'; } # push a reference to this row into the message list #################################################### push(@uploaded_files, \%file); } my $template = HTML::Template->new(filename => 'uploadapp2.tmpl.html'); $template->param( UPLOADED_FILES => \@uploaded_files, ); return $template->output; # my @type = $query->uploadInfo(@filename)->{'Content-Type'}; # return $filename[0].'
'.$type; # Open the html template # my @filenames = $query->param('uploaded_file'); # my $junk; # my %filename; # foreach %filename (@filenames) { # my $type = $filename->{'Content-Type'}; # my $contents = ''; # $junk .= "A: ".$filename."
"; # $junk .= "T: ".$type."
"; # my $bytesread; # while ($bytesread = read(<$filename>, my $buffer, 1024)) { # $contents .= $buffer; # } # } # my $filename = $query->param('uploaded_file'); # if (!$filename) {return 'Please select a file'}; # # Get file contents # my $output; # while (my $bytesread = read($filename, my $buffer, 1024)) { # $output .= $buffer; # } # return $output || 'File is empty'; } 1;