2014-10-01 7 views
0

Попробуйте сделать Zip файл с паролем на летуPHP Создание Zip на лету с паролем

<?php 
$fileRequest = 'cooking-book'; 

// Prepare File 
$file = tempnam("tmp", "zip"); 
$zip = new ZipArchive(); 
$zip->open($file, ZipArchive::OVERWRITE); 

// Stuff with content 
$getFile = file_get_contents('http://otherserver.com/getfile.php?sq='.$fileRequest); 
$zip->addFromString('cooking-book.txt', $getFile); 

// Close and send to users 
$zip->close(); 
header('Content-Type: application/octet-stream'); 
header('Content-Disposition: attachment; filename="'.$fileRequest.'.zip"'); 
readfile($file); 
unlink($file); 
?> 

Теперь отлично работает (загрузить файл с другого сервера в памяти, почтовый индекс, и отправить его пользователю) ,

Как установить пароль на zip? (exec() shell_exec() не может использовать) И где в коде это должно быть?

спасибо.

ответ

-2

Если вы используете PHP 5.6, вы можете использовать ZipArchive::setPassword, чтобы добавить пароль в текущий активный архив.

Вы бы использовать его как это:

$zip->setPassword("YourPasswordHere"); 

Я хотел бы добавить его перед $zip->close();

+0

К сожалению, мой PHP версии не 5,6, и я не могу upgrde на моем хостинге. Другие способы? –

+2

это все еще не работает в текущих версиях PHP, потому что setPassword предназначен только для декомпрессии! см. примечание к руководству: Эта функция устанавливает только пароль, который будет использоваться для распаковки архива; он не превращает ZipArchive, не защищенный паролем, в защищенный паролем ZipArchive. - http://docs.php.net/manual/en/ziparchive.setpassword.php – matt