Изображения, загруженные с помощью Via Perl Net::FTP, повреждены

Почему я всегда получаю поврежденный файл изображения при загрузке на FTP-сервер? .gif изображение не повреждается, только .jpeg/jpg а также .png быть испорченным.

sub png{
    my $ftp=Net::FTP->new($fhost)or die &ftpErr;
    $ftp->login($hostname, $hostpass);
    my $img=$ftp->put("$file");
    $ftp->get($img);
    $ftp->quit;
    our $image="$img";
    our $shot=$window->Photo(-format=>'png',-file=>"$image");
    $window->Label(-relief=>'ridge',-image=>$shot,-width=>50,-height=>50)->pack(-anchor=>'n');
}
sub jpeg{
    my $ftp=Net::FTP->new($fhost)or die &ftpErr;
    $ftp->login($hostname, $hostpass);
    my $img=$ftp->put("$file");
    $ftp->get($img);
    $ftp->quit;
    our $image="$img";
    our $shot=$window->Photo(-format=>'jpeg',-file=>"$image");
    $window->Label(-relief=>'ridge',-image=>$shot,-width=>50,-height=>50)->pack(-anchor=>'n');
}

1 ответ

Вы передаете файлы в режиме по умолчанию, который является ASCII. Этот режим переводит концы строк. Для передачи бинарных файлов используйте бинарный режим:

  $ftp->binary;
  $ftp->put(...);
  $ftp->get(...);
Другие вопросы по тегам