Проверьте длину для файла вместо всего запроса в CGI Upload - PullRequest
1 голос
/ 29 июня 2010

Я пытаюсь изменить Perl-скрипт Uber-Uploader, чтобы при проверке загрузки на соответствие минимальным требованиям он проверял файл, а не весь запрос.

Я не слишком опытен с 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");
}

Все, что делает, это проверяет длину содержимого запроса (который содержит несколько файлов) и завершается ошибкой, когда total превышает максимально допустимый размер.

Есть ли способ проверить это для каждого файла?

Примечание. Изменение сценариев загрузки невозможно. Не пытайтесь

1 Ответ

1 голос
/ 30 июня 2010

Я не уверен, что вы имеете в виду под "Сценариями загрузки не вариант", но вы пробовали что-то подобное?

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");
    }
}

(ПРИМЕЧАНИЕ: это непроверенный код !!!!!)

...