Zip Datei einlesen und Inhalte auf den Server transferieren

Vaio1207

Grünschnabel
Ich wünsche euch erstmal einen schönen Abend.

Nach langer Zeit bin ich auch mal wieder hier in diesem Forum, da ich ein kleines Problem habe.

Logische Hintergründe:

Eine Zip Datei soll per Browser auf den Server geladen werden. Im Anschluss soll diese geöffnet- und die einzelnen Inhalte auf den Server geladen werden.

Im Anschluss erfolgen weitere Prozesse mit den Inhalten des Zip Files.


Problemloser Ablauf:

Generell verläuft der Upload der Zip Datei ohne Schwierigkeiten. Im Anschluss öffnet ein Script diese Datei und selektiert die einzelnen Inhalte. Nun stehen mir folgende Informationen zur Verfügung:

  1. Name: dscf3689_big_resized_wm.jpg
  2. Actual Filesize: 40692
  3. Compressed Size: 40552
  4. Compression Method: deflated


Syntaktische Probleme:

Im weiteren Verlauf habe ich nun versucht, die Inhalte per Schleife zu selektieren und sie physikalisch im selben verzeichnis abzulegen.

Dabei treten allerdings Fehler auf, die ich logisch sehr gut einordnen kann, jedoch fehlt mir einfach die Routine mit diesem Format, um mein Problem selbstständig lösen zu können.


Fehlermeldungen:

Warning: fopen(bilder/test.zip/dscf3689_big_resized_wm.jpg): failed to open stream: Not a directory in /www/htdocs/rzcom/upload_zip_test.php on line 44

Warning: fwrite(): supplied argument is not a valid stream resource in /www/htdocs/rzcom/upload_zip_test.php on line 45


Das aktuelle Script: (Zeilen, die die Fehlermeldungen ausgeben, wurden kommentiert)

PHP:
$zip = zip_open("bilder/test.zip");
$file = "bilder/test.zip";

if ($zip) {

   while ($zip_entry = zip_read($zip)) {
       echo "Name:              " . zip_entry_name($zip_entry) . "\n";
       echo "Actual Filesize:    " . zip_entry_filesize($zip_entry) . "\n";
       echo "Compressed Size:    " . zip_entry_compressedsize($zip_entry) . "\n";
       echo "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "\n";

	   echo("<br><br>");
	   
       if (zip_entry_open($zip, $zip_entry, "r")) {
           echo "File Contents:\n";
           $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
		   
			$fp=fopen($file."/".zip_entry_name($zip_entry),"w"); /* :FEHLERMELDUNG 1: */
      		fwrite($fp,$buf);  /* :FEHLERMELDUNG 2: */
			
         #  echo "$buf\n";

           zip_entry_close($zip_entry);
       }
       echo "\n";

   }

   zip_close($zip);

}

Ich würde mich sehr darüber freuen, wenn mir jemand einen konstruktiven Hinweis geben könnte. Bitte postet nicht nur einfache Links, diese habe ich seit Stunden schon intensiv studiert.

Vielen Danke für eure Hilfe und beste Grüße,
Claus
 
Zuletzt bearbeitet:
Hallo!

Fehler:
Du versuchst, die neuen Dateien in einen Ordner zu legen, der genauso heißt, die die ZIP-Datei.

Lösung:
Erstelle eine neue Config-Variable $target_dir = 'bilder';
Setze die Permissions auf 0777
und ändere die von dir schon gekennzeichnete Zeile ab:
$fp=fopen($target_dir."/".zip_entry_name($zip_entry),"w");

Ergebnis:

Der Fehler sollte sich erledigt haben :D

Mamphil
 
Ich bedanke mich ganz herzlich bei dir! :o)

Es läuft und die Bilder werden schon verkleinert und in die DB übertragen. Die Inhalte der Zip wurden gelöscht ;o)


Ganze toll, danke sehr...
 
Zurück