Paul Kraus wrote:
>
> From how I understood it file::basename was able to tell figure out the
> filename without path for both windows and UNIX.
> I have an html page that has a form field for uploading a file. When I
> hit the choose button it lets me pick something from my directory. Now
> the filename it returns is the full path surrounded in quotes.
>
> I have done this with and without the quotes and both the result is
> always the same.
>
> I am working on an apache server running on Linux. I am using a windows
> xp machine to connect to the server and I am using opera as the browser.
>
> Here is the code..
> #!/usr/bin/perl -T
>
> use strict;
> use warnings;
> use CGI;
> use File::Basename;
>
> my $cgi = new CGI;
> print $cgi->header( "text/plain" );
>
> foreach my $name ( $cgi -> param ) {
>   print "$name:";
>   foreach my $value ( $cgi -> param ( $name ) ) {
>     print " $value\n";
>   }
> }
>
>
> #upload file
> my $file = $cgi -> param ( 'file' );
> my $basename = basename $file;
> print "$file\n";
> print "$basename\n";
>
> #my $fh = $cgi -> upload ( $file );
>
>
> Here is the output
> ------
> fname: p
> lname: k
> file: "C:\Documents and Settings\pdk\My Documents\My
> Webs\pelsupply\index.htm"
> "C:\Documents and Settings\pdk\My Documents\My Webs\pelsupply\index.htm"
> "C:\Documents and Settings\pdk\My Documents\My Webs\pelsupply\index.htm"
>

Hi Paul.

File::Basename needs to know what filespec format you're using. It makes
a guess depending on the system you're running on. If you need to process
filenames from a foreign system you need to tell it what that system is.
Calling

  fileparse_set_fstype('MSWin32');

should do the trick.

HTH,

Rob



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to