Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

CGI Re: Paths in Perl

by andye (Curate)
on Sep 05, 2001 at 17:51 UTC ( #110291=note: print w/replies, xml ) Need Help??

in reply to Paths in Perl

'course, there's a different issue if you're writing a CGI script which accepts a file upload.

Assuming you want to extract the filename from the pathname, I've been known to use something along the lines of this:

my ($filename) = ($pathname =~ m|[/\\:]([^/\\:]+)$|);
but if anyone has a better solution then I'd be interested to hear it.


Replies are listed 'Best First'.
Re: CGI Re: Paths in Perl
by rob_au (Abbot) on Nov 16, 2002 at 01:36 UTC
    In the CGI::Upload module, the following code was used to parse the full pathname of the uploaded file - This code makes use of HTTP::BrowserDetect to detect the client operating system from the sent HTTP headers and set the parse behaviour of File::Basename accordingly.

    The pertinent code in question ...

    use CGI; use File::Basename; use HTTP::BrowserDetect; sub _handle_file { my ($self, $param) = @_; my $cgi = $self->query; # Determine and set the appropriate file system parsing routines + for the # uploaded path name based upon the HTTP client header informati +on. fileparse_set_fstype( sub { my $browser = HTTP::BrowserDetect->new; return 'MSWin32' if $browser->windows; return 'MacOS' if $browser->mac; $^O; } ); my @file = fileparse( $cgi->param($param), '\.[^\.]*' ); # Return an undefined value if the file name cannot be parsed fr +om the # file field form parameter. return undef unless $file[0]; . . . }


    perl -e 'print+unpack("N",pack("B32","00000000000000000000000111100010")),"\n"'

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://110291]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (5)
As of 2020-11-25 14:50 GMT
Find Nodes?
    Voting Booth?

    No recent polls found