2015-06-18 91 views
1

嗨,我試圖使用ftp下載文件到perl中的特定位置。FTP錯誤:「失敗,寫入網絡流,沒有傳輸到ABOR。」

my $zipname = $ftp->get($filename,$local_dir)or die "get failed ", $ftp->message; 

但我得到這個錯誤。

"get failed Failure writing network stream. No transfer to ABOR." 

如果我在ftp get()中沒有使用第二個參數「$ local_dir」來下載相同的文件,那麼它正在下載它。 我需要將它下載到一個特定的位置,所以必須使用第二個參數。

我使用use Net::FTP;

和$ local_dir包含我的目標文件夾(在這裏我想我的文件,以獲得下載)路徑。

+0

什麼模塊做你'use'? – toolic

+0

如果您使用'Net :: FTP',請查看該模塊的[perldoc](http://perldoc.perl.org/Net/FTP.html)的'SYNOPSIS'中的命令,特別是'cwd '命令。 – stevieb

回答

1

你確實需要展示更多的代碼。但是,如果您使用的是Net::FTP,則get方法的第二個參數是輸出文件的路徑。你的變量名$local_dir聽起來像你傳遞一個路徑的目錄,而不是

+0

你是什麼意思的輸出文件,以及如何讓我的文件下載到一個特定的位置。 – user3649361

1

我想出了另一種方式,它爲我

$ftp->binary(); 
$ftp->port(); 

open TEMPFILE, ">$temp_path" or die "\nCan't open $temp_path for writing: $!\n"; 
binmode TEMPFILE; 

my $dataconn; 
my $buffer; 

$dataconn = $ftp->retr($filename); 
while ($dataconn->read($buffer, 10240)) { 
    print TEMPFILE $buffer; 
} 

close TEMPFILE or die "Can't close $temp_path: $!\n"; 
$dataconn->close(); 


$ftp->quit(); 
+0

這太可笑了。看起來你需要'$ ftp-> get($ filename,$ temp_path)' – Borodin

相關問題