And here is a working version which allows you to change the filename
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 $upload_file = $q->param('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 S +upply a File Name', } }); return $err_page if $err_page; #sall good patch together if ($diff_name) { $filename = $diff_name; } my $output_file = $destination . $filename; #upload time open (OUTFILE, ">", "$output_file") or die "Couldn't open $output_fi +le for writing: $!"; while ($bytesread = read($upload_file, $buffer, $num_bytes)) { $totalbytes += $bytesread; print OUTFILE $buffer; } die "$output_file Read Failure: $!" unless defined($bytesread); unless (defined($totalbytes)) { print "<p>Error: Could not read file $filename, "; print "or was of zero length"; } else { print "<p>Done ok, $totalbytes</p>"; } 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 => $filename, }, \$output) || die $html_template->error; return $output; } 1;
Dont forget to set the enctype of your form to enctype of "multipart/form-data"
In reply to Re^3: After Revieing the Cpan On CGI, wrt Uploading things
by barrycarlyon
in thread A Journey in Uploading
by barrycarlyon
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |