Zip Dateien einzeln entpacken

megatom

Mitglied
Aloah !
Ich habe zwar schon einige Beiträge über entzippen hier gefunden, aber der jüngste ist schon über 1 Jahr alt...
Und die Klassen scheinen sich entwickelt zu haben ...
Ich habe die DUnzip2 ausprobiert, und die scheint auch ganz brauchbar zu sein.
Ich hoffe jemanden zu finden, der sich damit etwas besser zurechtfindet als ich ...
Ich habe eine zip-Datei mit Bildern.
Diese möchte ich nun in ein Verzeichnis entpacken. Soweit kein Problem ...
Aber ich möchte zusätzlich die Dateien umbenennen und jeweils einen Datenbankeintrag je Bild generieren ...
Hat sowas schon mal jemand mit einer Zip Klasse gemacht?
Kann auch gerne eine andere sein.
Danke !
Ciao Tom
 
Hallo,
und wo genau ist dann jetzt dein Problem? :confused:
Du entpackst die ZIP Datei in ein beliebiges Verzeichnis.
Dieses durchläufst du anschließend mit PHP und benennst die Bilder um und erstellst deinen Datenbankeintrag.

mfg
forsterm
 
Ich verwende immer PEAR::Zip_Archive dafür: http://pear.php.net/package/Archive_Zip

Da haste alles, was du für dein Vorhaben benötigst. Methode listContent() besorgt dir alle Informationen aus dem Archiv. Mit extract() kannst du dann einzelne oder mehrere Dateien aus dem Archiv holen und da du schon den ursprünglichen Dateinamen kennst kannst du die Datei auch entsprechend umbenennen, in einem andern Pfad speichern oder sonst wie manipulieren.
 
Aloah !
Danke !
Also die PEAR Klasse scheint mir sehr gut zu sein, auch wenn ich mit Kanonen auf Spatzen schiesse ;)
Gibt es für die extract() Funktion Beispiele oder Tutorials ?:confused:
 
Hehe :)
Also ich bin jetzt soweit:

Code:
require_once "../zip/Zip.php";
	$zip = new Archive_Zip($zip_FILE);
	$list = $zip->listContent();
	foreach ($list as $v) {
		$pictures_insert = mysql_query("INSERT INTO tbl VALUES('', '$Category');");
                 $last_id = mysql_insert_id();

	}

Nur wie bekomme ich den jetzt dazu, dass der mir die aktuelle Datei mit Namen $last_id in ein beliebiges Verzechnis entpackt ?
 
PHP:
require 'Archive/Zip.php';

$zip = new Archive_Zip('my.zip');
$list = $zip->listContent();
foreach($list as $file)
{

    $zip->extract(array('by_name' => $file['filename']));
}
 
Hmm.
Wichtig ist mir vor allem, dass der der Dateiname geändert wird in $last_id, wie in meinem Beispiel !
Und den Pfad muss ich noch irgendwie unterbringen ...
Wenn ich es so versuche :

PHP:
foreach ($list as $v) {
		$zip->extract(array('by_name' => $v['filename']), 'add_path' => '/images/pictures/test/');		echo $v['filename']." hochgeladen<br />";
	}

bekomme ich folgende Fehlermeldung :
Parse error: syntax error, unexpected T_DOUBLE_ARROW in /www/htdocs/xxx/vvv/admin/pictures.php on line 39 :(
 
Zuletzt bearbeitet:
Hallo,
Hmm.
Wichtig ist mir vor allem, dass der der Dateiname geändert wird in $last_id, wie in meinem Beispiel !
Und den Pfad muss ich noch irgendwie unterbringen ...
wie wär's wenn du mal das Manual lesen würdest? :rolleyes:
Dann hättest du bestimmt die [phpf]rename[/phpf] - Funktion gefunden.

mfg
forsterm
 

Neue Beiträge

Zurück