package LSRfm::Application::Upload; use strict; use warnings; use base qw(LSRfm::Base); use Apache::Reload; use CGI; use CGI::Upload; #use CGI::Simple; sub setup { my $self = shift; $self->start_mode('input'); $self->run_modes([qw/input process/]);} sub input { my $self = shift; my $errs = shift; my $html_template = $self->param('html_template'); my $output; $html_template->process('upload/form', {wrapper => $self->wrapper(), errors => $errs}, \$output) || die $html_template->error; return $output; } sub process { my $self = shift; my $html_template = $self->param('html_template'); my $q = $self->query; my $script = $q->script_name; my $filename = $q->param('uploaded_file'); my $from; my $fh = $q->upload('uploaded_file'); my $diff_name = $q->param('diff_name'); my $totalbytes; my ($bytesread, $buffer); my $num_bytes = 1024; my $destination = "/home/lsrfm/webs/www.lsrfm.com/htdocs/uploads/"; #check rm my ($results, $err_page) = $self->check_rm('input', { required => [qw/uploaded_file/], filters => ['trim'], msgs => { missing => 'Please Supply a File Name', } }); return $err_page if $err_page; #sall good patch together # if ($diff_name) # { # $filename = $diff_name; # } my $output_file = $destination . $fh; #upload time open (OUTFILE, ">", "$output_file") or die "Couldn't open $output_file for writing: $!"; while ($bytesread = read($filename, $buffer, $num_bytes)) { $totalbytes += $bytesread; print OUTFILE $buffer; } die "$output_file Read Failure: $!" unless defined($bytesread); unless (defined($totalbytes)) { print "
Error: Could not read file $filename, "; print "or was of zero length"; } else { print "
Done ok, $totalbytes
"; } close OUTFILE or die "Couln't Close file $!"; #output my $output; $html_template->process('upload/form', {wrapper => $self->wrapper(), status => "sall_good", file => $filename, dest => $destination, from => $from, }, \$output) || die $html_template->error; return $output; } 1;