3

我正在尝试使用 PHP 7.2.7 创建一个加密的、受密码保护的 ZIP 文件。但是,我收到以下错误消息:

Attempted to call an undefined method named "setEncryptionName" of class "ZipArchive".

http://php.net/manual/en/ziparchive.setencryptionname.php

如果我删除$zip->setEncryptionName(),那么一切都会 100% 正常工作,除了 ZIP 文件没有密码保护。

我进行了 Google 和论坛搜索,但找不到遇到类似问题的任何人,可能是因为 PHP 版本和功能仍然太新。

4

1 回答 1

6

要使该ZipArchive::setEncryptionName方法起作用,您将需要 PHP >= 7.2 和 ZIP 扩展名。

请注意,ZIP 扩展需要使用libzip-dev>= 1.2.0进行编译

php-zip许多预编译包中的一个常见问题是编译器在编译扩展之前没有升级 libzip-dev 。这可能是你的情况。

请注意,您的 ZIP 不会被加密,并且该setPassword()功能仅在ZipArchive::setEncryptionName不可用时用于提取 zip。

这是更改日志: http ://pecl.php.net/package-info.php?package=zip&version=1.14.0

于 2018-10-15T12:44:55.460 回答