我使用下面的代码:我怎么能按类型用Perl(如巴纽,.BMP,.JPG)筛选文件上传
#!/usr/bin/perl -wT
use strict;
use CGI;
use CGI::Carp qw (fatalsToBrowser);
use File::Basename;
my $query = new CGI;
my $filename = $query->param("photo");
my $user_username = $query->param("text_value");
$CGI::POST_MAX = 1024 * 5000;
my $safe_filename_characters = "a-zA-Z0-9_.-";
my $upload_dir = "/" . $user_username;
if (!$filename)
{
print $query->header ();
print "There was a problem uploading your photo (try a smaller file).";
exit;
}
my ($name, $path, $extension) = fileparse ($filename, '\..*');
$filename = "user_pro_pic" . ".png";
$filename =~ tr/ /_/;
$filename =~ s/[^$safe_filename_characters]//g;
if ($filename =~ /^([$safe_filename_characters]+)$/)
{
$filename = $1;
}
else
{
die "Filename contains invalid characters";
}
my $upload_filehandle = $query->upload("photo");
open (UPLOADFILE, ">$upload_dir/$filename") or die "$!";
binmode UPLOADFILE;
while (<$upload_filehandle>)
{
print UPLOADFILE;
}
close UPLOADFILE;
print $query->header ();
print "$user_username";
print "<script> location.href='http://google.com/' </script>";
欢迎使用超级用户!预计超级用户的问题通常以某种方式与计算机软件或计算机硬件相关,在[faq](http://superuser.com/faq)中定义的范围内。编程问题被视为超级用户的主题。你可能想问这[Stack Overflow](http://stackoverflow.com)。 - 投票结束 – BloodPhilia 2011-03-07 21:13:00
@BloodPhilia:建议OP点击旗帜链接要求主持人移动问题最好。否则,OP会发布一个重复*和*问题被迁移,留下碎片在这里,在那里和你。 – 2011-03-07 22:55:45
[我如何通过Perl类型过滤文件上传(例如.png,.bmp,.jpg)](http://stackoverflow.com/questions/5225497/how-can-i-filter-a -file-upload-by-type-perl-eg-png-bmp-jpg) – 2011-03-08 10:48:43