URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 3083
[ Назад ]

Исходное сообщение
"Помогите разобраться с дескриптором "

Отправлено giperborey , 13-Фев-05 20:40 
Имеется скрипт, связанный с закачкой файла:

use strict;
  use CGI qw(:all);
  use CGI::Carp qw (fatalsToBrowser);

$CGI::DISABLE_UPLOADS = 0;

# Фрагмент формы

<form action="c.cgi" enctype="multipart/form-data" method="post">
<INPUT TYPE="file" name="pict" VALUE="Фыйл картинки">
   <INPUT TYPE="submit" VALUE="Выбрать">
   </form>


и два варианта в процедурах и объектах,
без use strict; работает но файлы получаются пустые, создается некий темповский файл с картинкой;
с use strict; выдает ошибку с указанием на дескриптор файла $file и
$fh

Чего не хватает???
my ($info, $f,$bytesread, $buffer);

    my $file = upload("pict");
     close F1_S;
    if ($file) {print ("11111");};
$info = uploadInfo($file);
print $file;
  open (A, "$file");
  print $info;
$f="kuuku";


open (FS, ">3.jpg");
binmode (FS);
binmode ($file);
while($bytesread = read($file, $buffer, 1024)) {
  print FS $buffer;

}

  close FS;


  my $query = new CGI;
  open UPLOADED, ">4.jpg";
binmode (UPLOADED);
my $fh = $query->upload("pict");
#binmode($fh);
my ($bytesread, $buffer);
while($bytesread = read($fh, $buffer, 1024)) {
print UPLOADED $buffer;
}
   close UPLOADED;


Содержание

Сообщения в этом обсуждении
"Помогите разобраться с дескриптором "
Отправлено PoizOn , 14-Фев-05 11:10 
Беглый взгяд на скрипт и уже видна ошибка:
while($bytesread = read($file, $buffer, 1024)) {
  print FS $buffer;

}

perldoc -f read.

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

read(A,$buffer,1024);