# 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;