Compresser un fichier(zip) avec mot de passe sous PHP

Fermé
Webman - Modifié par Webman le 10/06/2016 à 10:14
jordane45 Messages postés 38441 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 février 2025 - 10 juin 2016 à 10:55
Bonjour chers tous !

J'ai une version de PHP 5.6.3
Je désire créer un zip avec un mot de passe via un script PHP.
Avec la fonction ci-dessous j'arrive à compresser mes fichiers mais pas de mot de passe demandé pendant la décompression. (Mot de passe ne marche pas)

Quelqu'un peut-il m'aider?

Voici mon script:

<?php
//**********fonction pour compresser des fichiers en zip********

function createZipFile($zipfile,$files){

$zip=new ZipArchive();

if($zip->open($zipfile, ZipArchive::CREATE) !== TRUE){

throw new Exception('Erreur: ouverture ou création impossible');

}

foreach($files as $file){

$zip->addFile($file);

$zip->setPassword('Mot2Passe');

}

$zip->close();

}

?>
A voir également:

2 réponses

jordane45 Messages postés 38441 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 février 2025 4 737
10 juin 2016 à 10:21
Bonjour,

Comme indiqué dans le manuel de cette fonction https://www.php.net/manual/fr/ziparchive.setpassword.php ... elle ne sert pas à protéger une archive....
Elle sert pour décompresser une archive (déjà protégée et que tu veux extraire depuis ton script php)

This function only sets the password to be used to decompress the archive; it does not turn a non-password-protected ZipArchive into a password-protected ZipArchive. 


Comme le dit Erutan409 ... (voir le lien que je t'ai donné avant....) ... il aurait été plus judicieux de nommer cette fonction "usePassword" .. ^^

0
Ah Ok Merci à toi Jordane45 de m'avoir expliqué ce principe.

Mais y-a-t-il pas un moyen d'ajouter un mot de passe pendant la compression ?
0
Ah Ok Merci Jordane45 de m'avoir expliqué ce principe.

Mais y-a-t-il pas un moyen d'ajouter un mot de passe pendant la compression ?
0
jordane45 Messages postés 38441 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 février 2025 4 737
10 juin 2016 à 10:55
pas à ma connaissance.
Ou alors... il faut utiliser un script shell (si tu es en linux) ou éventuellement les commande 'system' en php
system('zip -P pass file.zip tonfichier'); 


mais il parrait que ce n'est pas top ... perso je n'ai jamais testé.
0