##
#!/usr/bin/perl -T
package Min;
use base 'CGI::Application';
use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
use HTML::Template;
use strict;
use warnings;
$ENV{'PATH'} = '';
sub setup {
my $self = shift;
$self->start_mode('list_mode');
$self->mode_param('rm');
$self->run_modes(
'list_mode' => \&list,
'save_mode' => \&save
);
}
sub list {
my $self = shift;
my $q = $self->query();
$q->param('rm', 'save_mode'); # hack?
my $template = HTML::Template->new(filename => 'templates/test.tmpl');
my $output = $q->b("Field1: ") . $q->textfield(-name=>'field1',-size=>20) .
$q->p() .
$q->b("MP3:") . $q->filefield(-name=>'mymp3', -size=>20) .
$q->p() .
$q->b("Field2:") . $q->textarea(-name=>'field2',-rows=>4,-cols\
=>20);
$output = $q->start_multipart_form() .
$q->hidden(-name=>'rm',-value=>'save_mode') .
$output .
$q->br() .
$q->submit(-label=>'Upload') .
$q->end_form();
$template->param(LISTFORM => $output);
return $template->output;
}
sub save {
my $self = shift;
my $q = $self->query();
my $field1 = $q->param('field1');
my $mp3 = $q->param('mymp3');
my $field2 = $q->param('field2');
# actual "SAVE" code has been deleted for this perlmonks post.
# note this part does NOT use the template file
# yes we aren't printing out the mp3 filename.
# in the real code the file gets uploaded and saved
# to disk, but not with Firefox 1.5 on Win XP.
my $stuff;
($stuff = <<" END_STUFF")=~s/^\s+//gm;
field1 is $field1
field2 is $field2
END_STUFF
return $stuff;
}
1;
####
testing