Автор Тема: file upload и модуль CGI, проблема с upload  (Прочитано 2513 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн D.O.

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 81
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.liveinternet.ru/users/info101
file upload и модуль CGI, проблема с upload
« : 22 Января 2005, 21:52:49 »
Не могу прочитать содержимое загруженного файла.
Я делаю так:

...
use strict;
use CGI qw(:standard);
use CGI::Carp qw (fatalsToBrowser);
...
$CGI::DISABLE_UPLOADS = 0
...
my $query = new CGI;
...
my $image_file = $query->param("userpic");
...
my $test = "no";
my $new_file_name = "empty";
if($image_file) {
    no strict;
    $image_file =~ m/(\\w+\\.\\w\\w\\w)$/i;
    $new_file_name = $1;
    open UPLOADED, ">>temp\\\\$new_file_name";
    binmode UPLOADED;
    my ($bytesread, $buffer);
    while($bytesread = read($image_file, $buffer, 1024)) {
        $test = "yes";
        print UPLOADED $buffer;
    }
    close UPLOADED;
} else {
    $new_file_name = "fuck-up";
}
...

В результате файл создаётся, но он имеет нулевую длину.
Переменная $test используется просто для проверки - её значение получается "no".
Почему я не могу прочитать содержимое загруженного файла?
« Последнее редактирование: 23 Января 2005, 00:52:25 от Green Kakadu »
Доска объявлений

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
file upload и модуль CGI, проблема с upload
« Ответ #1 : 23 Января 2005, 01:04:52 »
добавь:

my $fh = $query->upload(\'userpic\');#получаем дескриптор
...
и замени:

binmode(UPLOADED);
binmode($fh);
while($bytesread = read($fh, $buffer, 1024)) {
..
}

а эта штука, которую ты использовал:
my $image_file = $query->param("userpic");
это лишь имя файла, т.е. и используй ее по назначению
..
 
Цитировать
D.O.:
open UPLOADED, ">>temp\\\\$new_file_name";

а зачем ты дописываешь \'>>\', а не пишешь новый файл? Понятно, что если такого нет, то открывается новый, но ведь есть вероятность, что такое имя будет.
 в исканиях.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28