Я пытаюсь реализовать индикатор прогресса для загрузки файлов. Part1 и Part2 скрипта работают правильно, если выполняются отдельно. Но при совместном выполнении сценарий останавливается на:
my $cg = new CGI();
Проблема возникает только на сервере Windows. Что может быть причиной?
#!C:\Perl\bin\perl.exe -w
use CGI;
$post_data_filename = "C:\\test\\postdata.txt";
$uploaded_filename = "C:\\test\\uploaded_file.txt";
#PART 1
# read and store the raw post data in a temporary file so that we can repeatedly
# look at size of this temporary file in order to implement a progress bar
open(TMP,">","$post_data_filename");
$len = $ENV{'CONTENT_LENGTH'};
read (STDIN ,$LINE, $len);
print TMP $LINE;
close (TMP);
#PART 2
#use a CGI instance to read the raw post data and extract the uploaded file from it
my $cg = new CGI();
open(STDIN,"$post_data_filename");
my $fh = $cg->upload('file[0]');
open($tmp_fh, ">$uploaded_filename");
while(<$fh>) {
print $tmp_fh $_;
}
close($tmp_fh);
print "Content-type: text/html\n\n";
print "Ready\n";
exit;