使用Via Perl Net :: FTP上传的图像已损坏

时间:2014-11-21 02:46:26

标签: perl sftp 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 个答案:

答案 0 :(得分:2)

您正在以默认模式传输文件,即ASCII。此模式转换行结束。要传输二进制文件,请使用二进制模式:

  $ftp->binary;
  $ftp->put(...);
  $ftp->get(...);