2010-10-20 1 views
0

Хотите прочитать содержимое из CSV-файла, находящегося в удаленном zip-файле без загрузки &, извлекая zip-файл на локальный машина.Ошибка ввода-вывода: поиск локального заголовка: при чтении с удаленного сервера с использованием Archive :: Zip, PERL

Мне нужно это, потому что размер файла zip-файла слишком велик и его загрузка по мере необходимости занимает больше времени.

Я пробую это в perl.

Мой код: my $ ftp = Net :: FTP :: AutoReconnect-> new ("ftp.somename.com"); $ ftp-> login («пользователь», «пароль»); $ ftp-> cwd ("путь");

my $fh = Net::FTP::RetrHandle->new($ftp,"filename.zip"); 
my $zip = Archive::Zip->new($fh); 
my @member_names = $zip->memberNames(); 
my $member1 = $zip->memberNamed("Basic/BoardDescriptions.csv"); 

my $string = $member1->contents(); 
print Dumper $string; 

я IO :: стремится к локальной ошибке заголовка при вызове методы содержания, до этого заявления я предполагаю, что код работает отлично.

Заранее благодарим любого, кто его попробует. Спасибо.

+0

NET :: FTP будет «загружать файл на локальный компьютер». Вы не можете читать файл удаленно, если на этом удаленном компьютере не работает что-то. – Ether

ответ

0

Мое предположение, что это не архив :: ZIP's fault .. вы можете печатать @member_names?

Это не очевидно, как your'e предполагают, чтобы извлечь отдельные файлы, хотя Net::FTP::RetrHandle это обещать:

This was originally designed for use with Archive::Zip; it's reliable enough that the table of contents and individual files can be extracted from a remote ZIP archive without downloading the whole thing.

Попробуйте сделать то же самое с другой файл с другого сервера ..