Ask a Question related to PERL Beginners, Design and Development.
-
Paul Kraus #1
File::Basename
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"
Any suggestions?
Paul Kraus
Paul Kraus Guest
-
strange behavior in File::Basename
I'm using Perl 5.6.1 on Debian Linux 3.0 I noticed the module File::Basename doesn't behave like the shell commands basename/dirname in a special... -
File.basename, dirname and split changed in 1.8.0!
Why did the behaviour of File.basename, File.dirname and File.split change in ruby 1.8.0? The tests below run on 1.6.8( and 1.7.x, I think), but... -
#24898 [Opn->Csd]: Basename is inporperly changing the path var
ID: 24898 Updated by: sniper@php.net Reported By: funyon at funyon dot com -Status: Open +Status: ... -
#24898 [NEW]: Basename is inporperly changing the path var
From: funyon at funyon dot com Operating system: Redhat PHP version: 4CVS-2003-07-31 (stable) PHP Bug Type: Filesystem... -
#24678 [Opn->Bgs]: BASENAME function - SUFFIX is case-sensitive
ID: 24678 Updated by: derick@php.net Reported By: taomyn at hotmail dot com -Status: Open +Status: ... -
Rob Dixon #2
Re: File::Basename
Paul Kraus wrote:
Hi Paul.>
> 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"
>
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
Rob Dixon Guest



Reply With Quote

