ZIP-Datei wird nicht erstellt, aber es wird kein Fehler ausgelöst

8

Ich benutze ZipArchiv:

%Vor%

Ich kann die Liste der Dateien sehen, aber am Ende kann ich die Zip-Datei, die erstellt werden soll, nicht finden. Und ich bekomme keine Fehler / Ausnahmen von ZipArchive ...

bearbeiten:

Ich habe print $zip->getStatusString(); nach $zip->close();

hinzugefügt

und es wird gedruckt: Datei kann nicht geöffnet werden: Berechtigung verweigert ". Was bedeutet das? Ich weiß sicher, dass jedes Verzeichnis beschreibbar ist, bc ich kann neue Dateien mit PHP darin erstellen ...

edit 2:

%Vor%

es druckt das, so dass das Verzeichnis beschreibbar ist. Fühlt sich an als wäre ich in der Twilight Zone ...

    
Alex 15.10.2012, 11:52
quelle

3 Antworten

7

Zwei Kommentare von php.net

Wenn Sie einer ZIP-Datei mehrere Dateien hinzufügen und Ihr $ zip- & gt; close () - Aufruf FALSE zurückgibt, stellen Sie sicher, dass alle hinzugefügten Dateien tatsächlich vorhanden sind. Offenbar gibt $ zip- & gt; addFile () TRUE zurück, auch wenn die Datei nicht existiert. Es empfiehlt sich, jede Datei mit file_exists () oder is_readable () zu überprüfen, bevor Sie $ zip- & gt; addFile () aufrufen.

und

Vergessen Sie nicht zu überprüfen, dass die Zip nicht leer ist, Leute - sonst wird die Zip überhaupt nicht erstellt, und der Server wird keine Warnung ausgeben!

    
simply-put 15.10.2012, 12:07
quelle
6

Klingt so, als hätten Sie ein Berechtigungsproblem, entweder beim Schreiben in die ZIP-Datei oder beim Lesen der Dateien, die es zippen soll.

Ich würde eine Kombination aus file_exists , is_readable und is_writable verwenden, um herauszufinden, welche davon das Problem verursacht.

%Vor%     
Mitch Satchwell 15.10.2012 15:19
quelle
1

Stellen Sie sicher, dass:

  • Alle hinzugefügten Dateien existieren tatsächlich (überprüfen Sie jede Datei mit file_exists() und is_readable() , bevor Sie $zip->addFile() aufrufen).
  • Wenn Sie einen Ordner iterieren, schließen Sie . und .. aus.
  • Es gibt mindestens eine zu komprimierende Datei ( $zip['numFiles'] > 0 ).
  • Der Aufruf von $zip->close() gibt TRUE .
  • zurück
Bugs Bunny 21.01.2015 08:57
quelle

Tags und Links