Hinweis: Das Forum zieht um! Um keine Datenverluste zu haben, schalten wir zwecks Übernahme der Daten das Forum am Sonntag, den 24.04.2016 um ca. 21:00 Uhr offline und passen anschliessend die DNS-Einträge an. www.php-rocks.de wird euch dann nach den Aktualisierungen der DNS-Server wieder wie gewohnt uneingeschränkt zur Verfügung stehen. Danke für euer Verständnis!
18.01.2016, 03:15 Dieser Beitrag wurde zuletzt bearbeitet: 18.01.2016, 03:18 von Till.
Ich habe auch die auskommentierten Varianten durchgetestet und mit Content type "application/zip"...?
PHP-Code:
/* ZipFile::zipDir($dir, $outZipPath); */ if(!file_exists($outZipPath) || filemtime($outZipPath) < time() - 6 * 60){ $phar = new \PharData($outZipPath); // add all files in the folder, only include files with extensions $phar->startBuffering(); $phar->buildFromDirectory($dir); $phar->stopBuffering();
An den Extensions kann es nicht liegen, der zweite Parameter von PharData::buildFromDirectory() ist optional.
Er müsste in Deinem Fall den kompletten Inhalt des angegebenen Directory greifen.
Ich bin nicht sicher, frage aber mal, ob es an der Endung .wgt liegt?
Wobei mir auch grad auffällt, daß Du die für den filename $outZipPathFile verwendest und für Content-Length $outZipPath.
Ist das so korrekt?
Ansonsten vielleicht mal mit minimaler header()-Modifizierung testen:
PHP-Code:
header( 'Content-Type: application/zip' ); // "application/octet-stream" sollte imho aber auch gehen header( 'Content-Disposition: attachment; filename=' . basename($outZipPathFile) ); header( 'Content-Length: ' . filesize($outZipPathFile) );
Zitat:Wobei mir auch grad auffällt, daß Du die für den filename $outZipPathFile verwendest und für Content-Length $outZipPath.
Ist das so korrekt?
Eigentlich schon, $outZipPath ist der tatsächliche lokale Pfad und $outZipPathFile ist nur der Dateiname welcher mitgegeben werden soll.
Ich habe mal wie folgt geändert:
Kann es an den Dateien innerhalb des Verzeichnisses liegen?
PharData kann imho nicht so gut mit ungültigen Dateinamen um ( Leerzeichen, Umlaute, Sonderzeichen, etc. ).
Evtl. ErrorReport aufdrehen, vielleicht sagt er dann, was ihn stört.
Ich hätte jetzt gesagt es liegt vielleicht an meinem php, allerdings erstelle ich auf dem gleichen System an anderer Stelle erfolgreich sowohl phar als auch zip Dateien (mit ZipArchive).
Mh...?
Ich habe mal eine zwei Beispielzip hier angehängt, es sind "ganz normale" Dateien?
Einmal mit ZipArchive und einmal mit phar.
Edit: Phar scheint nicht so effektiv zu komprimieren wie ZipArchive?
Es muß an der Übertragung liegen:
Ich habe eine leere dummy.zip per WinRar erstellt und hochgeladen, wenn ich sie dann serve ist sie kaputt (Meldung wie gehabt).
So langsam gehen mir die Ideen aus...
Am Zippen solls nicht liegen, ich probiere nochmal die header zu ändern aber allzuviele Möglichkeiten gibts ja nicht mehr...?
Edit: Ich glaube einen unerwünschten Output vor der Ausgabe.
Edit2: Yo, das wars!
Ich hatte vergessen ein "debug-echo" zu entfernen
Danke für Deine Hilfe!!!
---
Dieses Forum gefällt mir, mh, ist ja auch noch ziemlich leer