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手工安装扩展方法
Laravel 8,为公共文件夹中的所有图像创建 zip 文件。面对文件错误:ZipArchive::addFile(): Invalid or uninitialized Zip object