首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Perl中限制CGI文件上传中的文件类型?

在Perl中限制CGI文件上传中的文件类型,可以通过检查上传文件的扩展名来实现。以下是一个简单的示例,演示如何在Perl中限制CGI文件上传中的文件类型:

代码语言:perl
复制
#!/usr/bin/perl

use strict;
use warnings;
use CGI;

my $cgi = CGI->new;
my $upload_dir = "/path/to/upload/dir";

my $file = $cgi->param('upload');
my $filename = $file->filename();
my $filesize = $file->size();

# 允许的文件类型
my %allowed_types = (
    'txt' => 1,
    'jpg' => 1,
    'png' => 1,
    'pdf' => 1
);

# 检查文件扩展名是否允许
my ($ext) = $filename =~ /(\.[^.]+)$/;
if (!exists $allowed_types{$ext}) {
    print $cgi->header('text/html');
    print "Error: 不允许的文件类型。";
    exit;
}

# 保存上传的文件
my $upload_file = "$upload_dir/$filename";
open(my $fh, '>', $upload_file) or die "Error: 无法打开文件 $upload_file 进行写入。";
binmode $fh;
print $fh $file->content();
close($fh);

print $cgi->header('text/html');
print "文件 $filename 上传成功。";

在这个示例中,我们首先创建了一个哈希表 %allowed_types,其中列出了允许上传的文件类型。然后,我们检查上传文件的扩展名是否在允许的类型中。如果不在允许的类型中,则输出错误消息。如果文件类型允许,则将文件保存到指定的目录中。

请注意,这个示例仅仅是一个简单的示例,实际应用中可能需要更复杂的验证和安全措施。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券