在CGI上载中检查每个文件的长度而不是整个请求

时间:2010-06-29 18:23:41

标签: perl upload cgi

我正在尝试修改Uber-Uploader perl脚本,以便在检查上传时是否满足最低要求时,它会检查每个文件而不是整个请求。

我对perl不太熟悉,也不知道怎么做。目前脚本只是这样做:

elsif($ENV{'CONTENT_LENGTH'} > $config{'max_upload_size'}){
my $max_size = &format_bytes($config{'max_upload_size'}, 99);
die("Maximum upload size of $max_size exceeded");
}

所有这一切都是检查请求的内容长度(包含多个文件),并在总计大于允许的最大大小时失败。

有没有办法检查每个文件?

注意:不能更改上传脚本。不要试试

1 个答案:

答案 0 :(得分:1)

我不确定你的意思是“改变上传脚本不是一种选择。”但是你尝试过类似的东西吗?

my $q = CGI->new();
my @files = $q->upload();

foreach my $file (@files){
    if ((-s $file) > $config{'max_upload_size'}){
        die("Maximum upload size of $file exceeded");
    }
}

(注意:这是未经测试的代码!!!!!)