2014-11-21 114 views
1

爲什麼上傳到FTP服務器時總是收到損壞的圖片文件? .gif圖像沒有被損壞,只有.jpeg/jpg.png被損壞。Via Perl Net :: FTP上傳的圖片遭到損壞

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'); 
} 

回答

2

您正在以默認模式(ASCII)傳輸文件。該模式轉換線路結束。要傳輸二進制文件使用二進制模式:

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

確保'$ FTP-> binary'是登錄後 – CJ7 2018-02-05 01:00:43

+0

@ CJ7:二進制模式應上傳/下載之前設置。實際上,每次上傳/下載都可以設置不同的設置。 – 2018-02-05 05:36:19

+0

但它需要在用戶名和密碼步之後。 – CJ7 2018-02-05 21:56:00