Hi i have script for upload file to server.when i execute this script it gives Bad file Descriptor error.could u anybody help on this.
[CODE=perl]
use strict;
use CGI;
use CGI::Carp qw(fatalsToBrow ser);
use File::Basename;
use diagnostics;
$CGI::POST_MAX = 1024 * 1000;
$CGI::DISABLE_U PLOADS = 0;
my $query=new CGI;
my $file = $query->param("file" ) ;
my $upload_dir = "../templates/";
my $filename_chara cters = 'a-zA-Z0-9_.-';
my $file = $query->param('file' ) ;
$file=~ s/(^\s+|\s+$)//;
my @array=();
my ($filename,unde f,$ext) = fileparse($file ,qr{\..*});
$filename .= $ext;
$filename =~ tr/ /_/;
$filename =~ s/[^$filename_char acters]//g;
if($filename =~ /^([$filename_chara cters]+)$/) {
$filename = $1;
}
else{
error("The filename is not valid. Filenames can only contain these characters: $filename_chara cters");
}
##I got the error in this line ##
my $upload_filehan dle = $query->upload("file ") or die $!;
open (UPLOADFILE, ">$upload_d ir/$filename") or error($!);
binmode UPLOADFILE;
while ( <$upload_fileha ndle> ) {
print UPLOADFILE;
}
close UPLOADFILE;
sub error {
print $query->header(),
$query->start_html(-title=>'Error') ,
shift,
$query->end_html;
exit(0);
}[/CODE]
Regards
Rajiv
[CODE=perl]
use strict;
use CGI;
use CGI::Carp qw(fatalsToBrow ser);
use File::Basename;
use diagnostics;
$CGI::POST_MAX = 1024 * 1000;
$CGI::DISABLE_U PLOADS = 0;
my $query=new CGI;
my $file = $query->param("file" ) ;
my $upload_dir = "../templates/";
my $filename_chara cters = 'a-zA-Z0-9_.-';
my $file = $query->param('file' ) ;
$file=~ s/(^\s+|\s+$)//;
my @array=();
my ($filename,unde f,$ext) = fileparse($file ,qr{\..*});
$filename .= $ext;
$filename =~ tr/ /_/;
$filename =~ s/[^$filename_char acters]//g;
if($filename =~ /^([$filename_chara cters]+)$/) {
$filename = $1;
}
else{
error("The filename is not valid. Filenames can only contain these characters: $filename_chara cters");
}
##I got the error in this line ##
my $upload_filehan dle = $query->upload("file ") or die $!;
open (UPLOADFILE, ">$upload_d ir/$filename") or error($!);
binmode UPLOADFILE;
while ( <$upload_fileha ndle> ) {
print UPLOADFILE;
}
close UPLOADFILE;
sub error {
print $query->header(),
$query->start_html(-title=>'Error') ,
shift,
$query->end_html;
exit(0);
}[/CODE]
Regards
Rajiv
Comment