2009-11-13 6 views
1

Je souhaite utiliser un wrapper de flux zip en PHP pour créer un fichier zip ou ajouter des fichiers dans une archive zip. Voici mon exemple:Créer un fichier dans une archive zip à l'aide d'un gestionnaire de flux

<?php 
echo file_get_contents('zip://file.zip#existing_file.txt'); 
file_put_contents('zip://file.zip#new_file.txt', 'Trying to put some stuff here...'); 
echo file_get_contents('zip://file.zip#new_file.txt'); 

Ce code me fait cette sortie:

$ php test.php 
Hey, I'm an existing text in a file in a zip archive ! 

Warning: file_put_contents(zip://file.zip#new_file.txt): failed to open stream: operation failed in /home/sylvain/test.php on line 7 

Warning: file_get_contents(zip://file.zip#new_file.txt): failed to open stream: operation failed in /home/sylvain/test.php on line 9 

je reçois la même erreur lorsque le fichier zip n'existe pas.

Voici les autorisations de fichier:

$ ls -la 
total 24 
drwxrwxrwx 2 sylvain sylvain 4096 2009-11-13 14:44 . 
drwxr-xr-x 134 sylvain sylvain 12288 2009-11-13 14:44 .. 
-rwxrwxrwx 1 sylvain sylvain 236 2009-11-13 14:44 file.zip 
-rwxrwxrwx 1 sylvain sylvain 268 2009-11-13 14:44 test.php 

Est-il possible de faire ce que je suis en train de le faire sans créer une nouvelle enveloppe de flux?

Répondre

1

wrapper flux zip:// ne supporte pas écrit: http://php.net/manual/en/wrappers.compression.php

En outre, des archives Zip ne peuvent pas être écrites dans un cours d'eau parce que le CRC vient avant les données compressées

+1

Selon les spécifications du fichier zip http://www.pkware.com/documents/casestudies/APPNOTE.TXT, CRC peut être ajouté après les données compressées. – Naveed

+0

Toujours signifie que si vous ne pouvez pas rechercher dans un flux, vous ne pourrez pas utiliser cette compression –

0

Hey vous fatigué de chmod votre dossier à 777 dans lequel le fichier ZIP est? Editer: Il semble que vos fichiers ne sont pas 777 et votre dossier. Je peux me tromper, je me suis juste réveillé. chmod 777 le dossier lui-même et laissez-moi savoir si cela ne fonctionne pas.

+0

Oui j'ai essayé, je modifié ma question, y compris la sortie de ls -la commande – Sylvain

+0

Lire la mise à jour – Jesse

+0

Les fichiers sont en 777, vous pouvez voir rwx pour l'utilisateur, le groupe et tous les utilisateurs. C'est pareil pour "." – Sylvain

Questions connexes