X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FRequest%2FUpload.pm;h=e5922c27363729c3e4e08a4bd5c9da9fb4023be9;hb=c5b74a51e7fa915f628392c1c55cb2d4a3e89d07;hp=80a3624b379fb361893c8608b857385ee8bb1eaf;hpb=7c48f3f64ce15094564731aea15afbd0d8a87904;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Request/Upload.pm b/lib/Catalyst/Request/Upload.pm index 80a3624..e5922c2 100644 --- a/lib/Catalyst/Request/Upload.pm +++ b/lib/Catalyst/Request/Upload.pm @@ -6,8 +6,9 @@ use base 'Class::Accessor::Fast'; use Catalyst::Exception; use File::Copy (); use IO::File (); +use File::Spec::Unix; -__PACKAGE__->mk_accessors(qw/filename headers size tempname type/); +__PACKAGE__->mk_accessors(qw/filename headers size tempname type basename/); sub new { shift->SUPER::new( ref( $_[0] ) ? $_[0] : {@_} ) } @@ -17,6 +18,7 @@ Catalyst::Request::Upload - handles file upload requests =head1 SYNOPSIS + $upload->basename; $upload->copy_to; $upload->fh; $upload->filename; @@ -136,6 +138,23 @@ sub slurp { return $content; } +sub basename { + my $self = shift; + unless ( $self->{basename} ) { + my $basename = $self->filename; + $basename =~ s|\\|/|g; + $basename = ( File::Spec::Unix->splitpath($basename) )[2]; + $basename =~ s|[^\w\.-]+|_|g; + $self->{basename} = $basename; + } + + return $self->{basename}; +} + +=head2 $upload->basename + +Returns basename for C. + =head2 $upload->tempname Returns the path to the temporary file.