无法提取使用php生成的zip文件

无法提取使用php生成的zip文件,php,zip,archive,ziparchive,Php,Zip,Archive,Ziparchive,我已经编写了PHP脚本来生成zip文件。当我使用rar软件提取它时,它工作正常,但没有使用rar软件提取。我不能要求用户安装rar软件来解压缩下载的zip文件 我不知道我在哪里犯了错误。 这里我附上了错误屏幕截图,当我尝试打开zip文件时,我得到了它。 如果$valid_files是一个全局数组,请使用basename()而不是end(),您的zip可能实际上没有添加任何文件,从而导致它成为无效的zip(但这在zip文件的大小中是可见的) 另外,请尝试winrar/winzip/7zip,看看

我已经编写了PHP脚本来生成zip文件。当我使用rar软件提取它时,它工作正常,但没有使用rar软件提取。我不能要求用户安装rar软件来解压缩下载的zip文件

我不知道我在哪里犯了错误。 这里我附上了错误屏幕截图,当我尝试打开zip文件时,我得到了它。


如果$valid_files是一个全局数组,请使用basename()而不是end(),您的zip可能实际上没有添加任何文件,从而导致它成为无效的zip(但这在zip文件的大小中是可见的)


另外,请尝试winrar/winzip/7zip,看看它们返回了什么,microsoft的内部zip引擎可能不够最新,无法打开zip。

我也遇到了这个问题,使用7z解决了这个问题,但我们需要将zip发送给其他人,因此7z不是问题

我发现,在我的情况下,文件路径太长:

当我使用此选项时:

$zip->addFile($files_path.'/people.txt');
它生成了一个嵌套非常深的zip文件夹,例如:[“/tmp/something/something 1/something 2/people.txt”]

所以我需要用这个来代替

$zip->addFile($files_path.'/people.txt', 'people.txt');
这将生成一个只有1层[“people.txt”]的zip文件夹,Windows zip阅读效果极佳~


希望这能帮助同样有这个问题的人

谢谢,我刚刚删除了页面顶部的空白和HTML,效果非常好。谢谢。我遇到了同样的问题,有人把我指给我看。
$zip->addFile($files_path.'/people.txt', 'people.txt');