Php 无法使用ZipArchive打开拉链

Php 无法使用ZipArchive打开拉链,php,ziparchive,Php,Ziparchive,我正在运行一个类似bash的php脚本。 此脚本执行以下操作: 从FTP服务器下载zip文件 ftp\u获取$ftp、$myFile.zip、$file、ftp\u二进制文件 下载文件后,我想提取其内容: $zip = new ZipArchive; $res = $zip->open($myFile); if ($res === TRUE) { $zip->extractTo($extractDir); $zip->cl

我正在运行一个类似bash的php脚本。 此脚本执行以下操作:

从FTP服务器下载zip文件 ftp\u获取$ftp、$myFile.zip、$file、ftp\u二进制文件

下载文件后,我想提取其内容:

   $zip = new ZipArchive;
    $res = $zip->open($myFile);

    if ($res === TRUE) {
        $zip->extractTo($extractDir);
        $zip->close();

    } else {
        dump( 'error, code:' . $res);
        die;
    }
但是,我得到了错误19谁是:不是一个压缩档案 如果我打开.zip,它是一个压缩的归档文件,因为我有PK密钥

有人有解决办法或想法吗

关于

解决方案 我正在使用这个代码,它工作得很好

$zip = new ZipArchive;
$myfileDir = './abc.zip';
$extractDir = './';

$res = $zip->open($myfileDir);

if ($res === TRUE) {
  $zip->extractTo($extractDir);
  $zip->close();

  echo 'Successfully extract the file';
} else {
  echo ('error, code:' . $res);
  die;
}
问题
我相信问题是因为zip文件,您会将zip文件夹上载到google drive,让我们在本地下载并测试它吗?

这个变量$myFile对您来说是什么?您需要发送此文件的路径,而不是二进制文件。文件是否使用密码加密?$myFile是文件的路径,如D:/myFile.zip文件未加密..:在你的代码中一切看起来都很好…你能自己创建一个zip文件,然后在这段代码中尝试吗。如果您是在从sFTP下载后才运行此代码,那么在php和os创建文件时,可能会导致文件锁定。您可以尝试在代码中编写sleep10。但是,在代码中使用sleep不是一个好主意,因为它会影响性能。问题已解决。文件已损坏。。。服务器的硬盘已满,创建的.zip已损坏。谢谢你的帮助