Совершенно непонятная проблема.
test.html пересылает два файла на сервер, а test.cgi выводит из содержимое на экран.
Проблема с том, что на одном сервере всё работает как надо, а на другом второй файл не выводиться и его длина равна нулю.
Я брал размеры файлов по 5 байт.
С чем это может быть связано?
-------------------------------------------
Файл test.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r" />
</head>
<body>
<form enctype="multipart/form-data" action="/cgi-bin/test.cgi" method="post">
Файл изображения 1: <input name="PictureFile1" type="file">
Файл изображения 2: <input name="PictureFile2" type="file">
<input type="submit" value="Отослать">
</form>
</body>
</html>
-------------------------------------------
Файл test.cgi
#!/usr/bin/perl
use strict;
use CGI qw/:standard/;
use CGI::Carp('fatalsToBrowser');
print header( -charset => 'koi8-r');
my $PictureFile1 = CGI::param('PictureFile1');
my $PictureFile2 = CGI::param('PictureFile2');
my $Picture1 = 0;
my $Picture2 = 0;
my $PictureSize1 = (stat($PictureFile1))[7];
my $PictureSize2 = (stat($PictureFile2))[7];
my $RealSize1 = read($PictureFile1,$Picture1,$PictureSize1);
my $RealSize2 = read($PictureFile2,$Picture2,$PictureSize2);
($RealSize1 == $PictureSize1) or print 'Error1
';
($RealSize2 == $PictureSize2) or print 'Error2
';
print "RealSize1: ".$RealSize1."
";
print "RealSize2: ".$RealSize2."
";
print "PictureSize1: ".$PictureSize1."
";
print "PictureSize2: ".$PictureSize2."
";
print "PictureFile1: $PictureFile1
";
print "PictureFile2: $PictureFile2
";
print "Picture1: $Picture1
";
print "Picture2: $Picture2
";
При закачке файлов на другой сервер атрибуты директорий и исполняемых файлов проверил? Такие же какие и были на другом серваке?
Такие-же, но какое это имеет значение? Ведь скрипт работает и там и там, но на втором сервере содержимое второго загруженного файла равно нулю. Причём я не сохраняю файлы на сервере, я просто вывожу на экран содержимое, полученное из формы.