Изображения, загруженные с помощью 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(...);