我使用了ZipArchive::EM_TRAD_PKWARE,带有密码,但zip文件未加密。我认为pkware不起作用。有解决方案吗?
Thx
$zip->setEncryptionName('test.txt', ZipArchive::EM_TRAD_PKWARE, 'PASSWORD');
我通过以下示例和规则使其工作:
让它发挥作用的两条规则
当我不遵守以下两条规则时,我得到了不一致的结果:
- 确保要加密的文件包含数据
- 确保在
setEncryptionName
之前调用addFile
工作示例
test.txt
创建以下test.txt文件,其中包含以下内容:
test
test.php
将以下PHP代码添加到test.PHP中:
$zip = new ZipArchive();
$zip->open("test.zip", ZipArchive::CREATE);
$zip->addFile("test.txt");
$zip->setEncryptionName('test.txt', ZipArchive::EM_TRAD_PKWARE, 'PASSWORD');
$zip->close();
运行test.php
php test.php
现在创建了一个zip文件,在解压缩时提示输入密码。