Я создаю zip-файл данного файла в PHP. Ниже приведена функция
function create_zip($file, $file_name) { $zip = new ZipArchive(); $zip_name = $file_name. ".zip"; // Zip name $zip->open($zip_name, ZipArchive::CREATE); if (file_exists($file)) { $zip->addFromString(basename($file), file_get_contents($file)); } else { return "file does not exist"; } $zip->close(); return $zip_name; }
Я хочу добавить защиту паролем для файлов Zip. Я нашел следующий код для создания защищенного паролем zip-файла
system('zip -P password file.zip file.txt');
Но он работает неправильно. Можете ли вы, пожалуйста, назовите меня. Как добавить защиту паролем в Zip-файл?
PHP Zip – http://php.net/manual/en/book.zip.php – не поддерживает защищенные паролем ZIP-файлы, вам нужно будет сделать это через командную строку.
Чтобы защитить паролем файл, вам необходимо использовать zip
командную строку, убедитесь, что программа командной строки zip
присутствует, она не установлена по умолчанию во многих системах.
В новом PHP 5.6 (в настоящее время в бета-версии ) вы можете использовать ZipArchive для создания защищенных паролем архивов. Все, что вам нужно, это добавить этот код ZipArchive::setPassword($password)
Edit: По-видимому, он поддерживает дешифрование , а не шифрование.
Я понимаю, что это старый поток, но кто-то пытается добавить пароль в архив в среде Windows, я решил это с помощью командной строки winrar и exec
на PHP.
Загрузите winrar с http://www.rarlab.com/ и включите WinRAR.exe в свой каталог скриптов PHP или вызовите его из нужного каталога в команде exec
.
exec("winrar a -p[password] [archive name] [file or folders to include]");
winrar
в приведенном выше примере относится к winrar.exe в том же каталоге, что и ваш скрипт. Если winrar.exe НЕ находится в том же каталоге, что и ваш скрипт, вы можете просто указать путь:
exec("C:\Program Files\Winrar...
Так, например: exec("winrar a -ppassword archive.zip file.txt");
В результате создается архив с именем «archive.zip», созданный с «file.txt» внутри, и пароль «password».
Для получения дополнительной информации о командной строке winrar: http://acritum.com/software/manuals/winrar/