Как установить пароль для zip-файла в PHP - PullRequest
1 голос
/ 24 апреля 2019

Этот код работает отлично. Но пароль не установлен для файла .zip. Я не знаю почему. При сохранении файла его идеально сохранить в zip-файл, но пароль для этого файла не установлен. Я думаю, что некоторые ошибки в коде.

for ($num = 0; $num < count($fileArray["name"]); $num++) {
    $fileName = $fileArray["name"][$num];
    $tempName = $fileArray["tmp_name"][$num];                                                   
    move_uploaded_file($tempName, "tmp/" . $fileName);}
    $archiveName = rand(10000, 1000000) . ".zip";
    $filesArrayNames = $_FILES["upload_files"]["name"];
    $zipDir = scandir("zip/");
    $error = false;
    foreach ($zipDir as $zipDIrFile) {
        if ($zipDIrFile == $archiveName) {
            $error = true;
            break; 
        }
    }
    if ($error == false) {
        $tmpDir = scandir("tmp/");
        $zip = new ZipArchive();
        $zip->open("zip/" . $archiveName, ZipArchive::CREATE);
        $zip->setPassword($password);
        for ($num = 0; $num < count($fileArray["name"]); $num++) {
            $fileName = $fileArray["name"][$num];
            $zip->setEncryptionName($fileArray["name"][$num], ZipArchive::EM_AES_256);
            foreach ($tmpDir as $tmpDirFile){
                if($tmpDirFile == $fileName){
                    $zip->addFile("tmp/".$fileName);
                    // echo 'Adding'.$fileName."<br />";
                    echo $password;
                }
            }
        }
        $zip->close();
        for ($num = 0; $num < count($fileArray["name"]); $num++) {
            $fileName = $fileArray["name"][$num];
            foreach ($tmpDir as $tmpDirFile){
                if($tmpDirFile == $fileName){
                    unlink("tmp/".$fileName);
                }
            }
        }
    } else { 
        echo 'Name already exists';
    }
}
...