Как загрузить файл с помощью CGI APPLICATION

Привет, я пытаюсь загрузить файл изображения с помощью Perl CGI-приложения. Не уверен, что я делаю неправильно - но пустой файл изображения (с правильным названием) сохраняется.


my $ picture = $ self-> query-> param ('picture');
мой $ буфер; мой $ bytesread;

open (OUTFILE, ">> $ user_dir / profile_picture / $ picture");
while ($ bytesread = read ($ picture, $ buffer, 1024)) {
вывести OUTFILE $ buffer;
}

2 ответа

Решение

Прочитайте раздел "СОЗДАНИЕ ФАЙЛА ЗАГРУЗКИ ФАЙЛА" в документации CGI.pm. Там вы увидите, что метод загрузки вернет дескриптор файла.

    my $fh = $self->query->upload('picture');

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

Не забывайте, что вашему HTML-элементу формы также нужно указать enctype='multipart/mixed', иначе поток файлов для загрузки не будет отправлен.

Другие вопросы по тегам