【问题标题】:IO error: seeking to local header : while reading from a remote server using Archive::Zip,PERLIO 错误:寻找本地标头:使用 Archive::Zip,PERL 从远程服务器读取时
【发布时间】:2010-10-21 15:12:41
【问题描述】:

想要从远程 zip 文件中的 .csv 文件中读取内容,而无需将 zip 文件下载并解压缩到本地机器。

我需要这个,因为文件 zip 文件太大,需要时下载 需要更长的时间。

我正在 perl 中尝试这个。

我的代码是: 我的 $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;

调用 contents 方法时出现 io::seeking to local header 错误, 直到那个声明我猜代码工作正常。

提前感谢任何尝试过的人。 谢谢。

【问题讨论】:

  • NET::FTP 将“将文件下载到本地计算机”。如果不在远程机器上运行某些东西,您就无法远程读取文件。

标签: perl ioerror


【解决方案1】:

我猜这不是 Archive::ZIP 的错.. 你可以打印@member_names 吗?

虽然Net::FTP::RetrHandle 确实承诺了,但你想如何提取单个文件并不明显:

这最初是为与 Archive::Zip 一起使用而设计的;它足够可靠,可以从远程 ZIP 存档中提取目录和单个文件,而无需下载整个文件。

尝试对来自另一台服务器的另一个文件执行相同操作..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 2013-08-16
    • 1970-01-01
    相关资源
    最近更新 更多