Создать защищенный паролем .zip файл с PHP ZipArchive - PullRequest
0 голосов
/ 02 апреля 2020

Я использую XAMPP для 7.4.3-0 на Ma c ОС High Sierra 10.13.6:

  • PHP Версия 7.4.3
  • Zip версия 1.15.6
  • Заголовки Libzip версии 1.5.1
  • Библиотека Libzip версии 1.5.1

Следующий код создает файл с именем test.zip со всеми файлами из папки Важно , но не удается применить пароль secret к созданному файлу.

<?php
$zip = new ZipArchive;
$filename = "file.zip";

if ($zip->open($filename, ZipArchive::CREATE) === TRUE)
{
    $zip->setPassword("secret");
    if ($handle = opendir('Important/'))
    {
        while (false !== ($entry = readdir($handle)))
        {
            if ($entry != "." && $entry != "..")
            {
                $zip->addFile('Important/' . $entry);
                $zip->setEncryptionName('Important/' . $entry, ZipArchive::EM_AES_256);
            }
        }
        closedir($handle);
    } 
    $zip->close();
}
?>

From php. net (ZipArchive :: setPassword) :

По состоянию на PHP 7.2.0 и libzip 1.2.0 пароль используется для распаковки архива, а также является паролем по умолчанию для ZipArchive :: setEncryptionName () и ZipArchive :: setEncryptionIndex (). Ранее эта функция только устанавливала пароль, который будет использоваться для распаковки архива; он не превратил незащищенный паролем ZipArchive в защищенный паролем ZipArchive.

Поскольку я использую более поздние версии PHP и libzip, а код не выдает никаких ошибок, я буду Спасибо за любые советы о том, как создать zip-файл, защищенный паролем.

...