2017-08-28 3 views
0

C'est mon code postal 1 fichier:Pourquoi ZipArchive ne fonctionne pas correctement?

$zipname="C:/xampp/htdocs/test/5/JPN/5/5_1.0.pdf.zip" 
    $zip = new ZipArchive; 
     $zip->open($zipname, ZipArchive::CREATE);      
     $zip->addFile("C:/xampp/htdocs/test/5/JPN/5/5_1.0.pdf");  
     $zip->close(); 

Mais zip à partir du dossier C: \ enter image description here

Pourquoi ZipArchive travail pas?

+0

double possible de [Comment zip tout un dossier en utilisant PHP] (https://stackoverflow.com/questions/4914750/how-to-zip-a -whole-folder-using-php) –

+0

'open()' retourne TRUE ou un code d'erreur en cas d'erreur. 'addFile()' et 'close()' retournent tous les deux faux en cas d'échec. Que voyez-vous si vous vérifiez les valeurs de retour de ces fonctions? –

Répondre

1

Vous devez transmettre deux paramètres dans la fonction addFile.

Selon the documentation

bool ZipArchive :: addFile (string $ filename [, string localName $])

nom de fichier Le chemin vers le fichier à ajouter.

nom local nom local dans l'archive ZIP.

Cela signifie que le premier paramètre est le chemin d'accès au fichier réel dans le système de fichiers et le second est le chemin & nom de fichier que le fichier aura dans les archives.

Le code suivant fonctionnera pour vous

$zip->addFile("C:/xampp/htdocs/test/5/JPN/5/5_1.0.pdf", "5_1.0.pdf"); 
+0

Vous êtes presque là, sauf que '5_1.0.pdf' n'est pas une expression PHP valide et le compilateur déclenche une erreur d'analyse et refuse d'exécuter le script. – axiac

+0

oups c'était une faute de frappe. le nom devrait être entre guillemets. "5_1.0.pdf" comme ceci – siddharth

+0

Bien sûr, il devrait être entre guillemets. Utilisez le lien 'edit' sous la réponse pour le réparer. – axiac