Я хочу иметь URL, который только при нажатии будет выполняться CGI.
<a href=/myweb/cgi-bin/mycgi_long_running.cgi?name=param>Some Param</a>
Одним щелчком мыши CGI будет выполнять следующие задачи:
- Найти файлы, связанные с заданными параметрами.
- Архивировать их
- Начать загрузку для пользователя
Как создать правильное состояние для скрипта CGIдля этого?
У меня есть следующий сценарий CGI, но не удалось:
use strict;
use warnings;
use CGI::Carp qw(fatalsToBrowser);
use CGI qw/:standard/;
my $query = CGI->new();
my $file = "listoffiles_withdir.txt";
my $searchkey = param('name');
#untainting step skipped for briefness
# Begin searching terms and ignoring case
my @entries = `grep -i \"$searchkey\" $file`;
chomp @entries;
my $outf = 'tempfile.txt'; # output file name
open ( OUTFILE, '>>', $outf)
foreach my $file (@entries}
print OUTFILE "$file";
}
close(OUTFILE)
# This phase takes may take a long time to do
# many files involved
system("tar -cf out.tar -T $outf");
# Next step, I'm stuck as how to let the web automatically download
# when the archiving is complete