PHP7中的ZipArchive找不到zip的内容

Posted

技术标签:

【中文标题】PHP7中的ZipArchive找不到zip的内容【英文标题】:ZipArchive in PHP7 cannot find content of zip 【发布时间】:2017-11-20 12:56:51 【问题描述】:

我有一个 php 脚本可以从表单中解压缩一个 zip 文件, 但是无论我在 zip 中放入什么内容,打开的 zip 都找不到这些项目。 当我var_dump()我的 zip 时,我得到了这个:

object(ZipArchive)#800 (5) 
    ["status"]=> int(0) ["statusSys"]=> int(0) 
    ["numFiles"]=> int(0) 
    ["filename"]=> string(14) "/tmp/php83KJHe" 
    ["comment"]=> string(0) ""
 

这是脚本:

$zip     = new  \ZipArchive();
$zipname     = $_FILES[ 'lezip' ][ 'tmp_name' ];
$zip->open( $zipname, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE );
var_dump( $zip );
$zipsuccess = $zip->extractTo( $destination );
var_dump( ' success: ' . $zipsuccess );

成功转储说没问题

string(11) " success: 1" 

我确实设置了 $destination 文件夹,它存在并且具有写入权限。

为什么 ZipArchive 在我上传的 zip 中找不到任何项目?

【问题讨论】:

调试:$open_status = $zip->open(...); var_dump($open_status);请分享输出。 【参考方案1】:

来自PHP docsZipArchive::OVERWRITE

总是开始一个新的存档,如果文件已经存在,这种模式会覆盖文件。

如果您想读取现有存档,则不能使用此标志。

【讨论】:

太好了,它只通过设置标志 CREATE 来工作,谢谢

以上是关于PHP7中的ZipArchive找不到zip的内容的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:仅从在线下载为 zip 时未找到“ZipArchive”类

宝塔面板php7.3&7.4版本不支持ZipArchive手工安装扩展方法

找不到类“ZipArchive”

ZipArchive创建无效的ZIP条目

Laravel 8,为公共文件夹中的所有图像创建 zip 文件。面对文件错误:ZipArchive::addFile(): Invalid or uninitialized Zip object

我使用 PHP 的 ZipArchive 创建的 .zip 存档在 Windows 10 上已损坏/无效