X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FManual%2FCookbook.pod;h=aa38da5c526761a9390d544596d0dac235eceef3;hb=47ae6960753acadac1da528c87c5d5009b675281;hp=7f4a2db6d9fb24c19cc6c63a02e78044fecbd5cc;hpb=4d89569d69f4b91b8faf4211128ab22e2b4965f4;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Manual/Cookbook.pod b/lib/Catalyst/Manual/Cookbook.pod index 7f4a2db..aa38da5 100644 --- a/lib/Catalyst/Manual/Cookbook.pod +++ b/lib/Catalyst/Manual/Cookbook.pod @@ -91,18 +91,13 @@ Catalyst Controller module 'upload' action: if ( $c->request->parameters->{form_submit} eq 'yes' ) { if ( my $upload = $c->request->upload('my_file') ) { - + my $filename = $upload->filename; - my $fh = $upload->fh; - - open( NEW_FILE, ">/tmp/upload/$filename" ) - or die( "Can't open file for writing: $!" ); - - while ( $fh->read( my $buf, 32768 ) ) { - print NEW_FILE $buf; + my $target = "/tmp/upload/$filename"; + + unless ( $upload->link($target) || $upload->copy($target) ) { + die( "Failed to copy '$filename' to '$target': $!" ); } - - close(NEW_FILE); } } @@ -133,18 +128,12 @@ Controller: for my $field ( $c->req->upload ) { - my $upload = $c->request->upload($field); my $filename = $upload->filename; - my $fh = $upload->fh; - - open( NEW_FILE, ">/tmp/upload/$filename" ) - or die ("Can't open file for writing: $!"); - - while ( $fh->read( my $buf, 32768 ) ) { - print NEW_FILE $buf; + my $target = "/tmp/upload/$filename"; + + unless ( $upload->link($target) || $upload->copy($target) ) { + die( "Failed to copy '$filename' to '$target': $!" ); } - - close(NEW_FILE); } }