ZIP-Datei ordnungsgemäß mit PHP erstellen?

Alles, was PHP betrifft, kann hier besprochen werden.

ZIP-Datei ordnungsgemäß mit PHP erstellen?

Postby mf_2 » 19. June 2006 17:28

Hallo,

Ich habe über diesen Link ( http://www.zend.com/codex.php?id=696&single=1 ) eine Möglichkeit gefunden, zip-Archive on-the-fly zu erstellen und dem User gleich zum Download anzubieten. Ich habe den Code und das Beispiel weiter unten so übernommen, dass er mir die Datei sofort zum Download anbietet und nicht erst zwischenspeichert. So weit so gut. Leider wollte das Script beim ersten Mal ned laufen, da habe ich immer einen UNEXPECTED_T_STRING in Zeil 45 bekommen.
Die Problemzeile ist folgende:

$name = str_replace("\", "/", $name);

Ersetze ich diese Zeile wie folgt:


$name = str_replace("\\", "/", $name);
dann läuft es fehlerfrei. Zumindest was den PHP-Teil angeht. Will ich nun die ZIP-Datei öffnen, meldet mir WinRAR ein beschädigtes Archiv. Liegt das an meiner Modifikation?
Oder daran:
Ich weiss leider ned genau, wie man die Datei, die in das ZIP-Archiv soll am besten einliest, folgender Scriptteil ist der dafür relevante:

Code: Select all

<?php 

$zipfile = new zipfile(); 

// add the subdirectory ... important!
$zipfile -> add_dir("dir/");

// add the binary data stored in the string 'filedata'
$filedata = "(read your file into $filedata)"; 
$zipfile -> add_file($filedata, "dir/file.txt"); 

// the next three lines force an immediate download of the zip file:
header("Content-type: application/octet-stream"); 
header("Content-disposition: attachment; filename=test.zip"); 
echo $zipfile -> file(); 

?> 



Was muss ich bei add_dir eintragen? Kann ich das so lassen? ich will ja erstmal kein Verzeichnis machen, sondern nur eine einzelne Datei ins ZIP-Archiv speichern.
Die Zeile
$filedata = "(read your file into $filedata)";
habe ich wie folgt geändert:
$filedata = file_get_contents("mail.bmp");

Ist das die richtige funktion ( file_get_contents )? Bin mir ned sicher, da dazu nichts auf der Website stand. Die Datei "mail.bmp" liegt übrigens im gleichen Verzeichnis wie das Script. Wenn ich statt file_get_contents() nur file() verwende bekomme ich gleich unter PHP bereits einen Fehler.
Hilfe! Ich bin am Verzweifeln!

Habs auch mal mit ner Textdatei statt ner Grafik versucht, immer noch kein Erfolg.
file_get_contents() *müsste* stimmen, da ich diese Funktion mal seperat ausprobiert habe und dann den Variableninhalt mit echo ausgegeben habe und da stand genau der Inhalt der Textdatei.
Ich verzweifel hier echt noch ....
mf_2
 
Posts: 20
Joined: 09. February 2004 19:54

Postby mf_2 » 19. June 2006 20:30

Problem gelöst!!!!
Vor allenm Hexwerten auf dem Script ( siehe Link ) muss ein '\' stehen, sonst interpretiert PHP das als String und ned als Hex-Wert!
mf_2
 
Posts: 20
Joined: 09. February 2004 19:54

Postby mewX » 12. October 2006 21:51

-weg-

/edit:
OK, jetzt werden die ZIP-Files auch erstellen und es gibt keinen PHP-Fehler, aber es kommt immer "Unerwartetes Archivende" beim Öffnen des Zips..
mewX
 
Posts: 1
Joined: 12. October 2006 21:46

Postby Stasy » 16. November 2006 11:45

Stasy
 
Posts: 2
Joined: 17. March 2006 15:34


Return to PHP

Who is online

Users browsing this forum: No registered users and 6 guests