ZipArchiv entpacken!

Oetzicool

Erfahrenes Mitglied
Hey Leute ich hab da mal ne Frage,

ich will ein ZipArchiv hochladen und dieses dann entpacken! Das mit dem hochladen klappt soweit ohne Probleme aber das mit dem Entpacken klappt nicht! Ich hab auf meinem virtuellen Server das PEAR Framework installiert und benutze auch das Archive_Zip File als Import! Als am erstellen und hinzufügen zu Archiven liegt es nicht, nur am extrahieren aber hier mal mein Code:
PHP:
<?php
include ('Archive/Zip.php');        // imports

if ($_FILES["file"]["error"] > 0)
{
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
} else {
	list($filename,$extension) = split(".",$_FILES['file']['name']);
	echo $filename;
	move_uploaded_file($_FILES['file']['tmp_name'], "upload/".$_FILES['file']['name']);
	echo "Das Archiv wurde erfolgreich nach upload/".$_FILES['file']['name']." hochgeladen";
	$archive = "upload/".$_FILES['file']['name'];
	$path = 'pics/';
	if(file_exists($archive))
	{
		$obj = new Archive_Zip($archive);
	} else {
		die("File no exists");
	}
	if (obj->extract(array('by_preg' => "/.*jpeg$/")))
	{ // all jpeg files
   		echo 'Extraction successfully!';
	} else {
    	echo 'Error in file extraction';    
	}
}
?>

Danke schonmal für eure Hilfe :)
 
Moin,

gut, ich muss hier einmal nachfragen. Was heißt denn virtueller Server. Arbeitetst Du auf einem IIS oder mit einem Apache Webserver?

Welche Rechte stehen Dir denn zur Verfügung ?

Bei einem Linux Derivat besteht die Möglichkeit, dass Dir das Programm unzip zur Verfügung steht, welches Du dann mit den entsprechenden Scriptrechten
so ausführen kannst:

PHP:
// einen beliebigen Befehl ausführen
	exec('touch /myFile.txt');
 
	// Befehl ausführen und Rückgabe ausgeben
	$output = shell_exec('ls -l');
	echo $output;
 
	// das selbe mit dem "backtick operator"
	$output = `ls -l`;
	echo $output;

Möglicherweise ist die Nutzung Deines Frameworks gar nicht notwendig...

Grüße
soa
 
@All: Er verwendet PEAR::Archive_Zip. Da wird nichts weiter benötigt:

Description ------------------------------------
The PECL Zip extension is faster and more current than this native PHP library. If possible, you should use the PECL extension instead:

http://pecl.php.net/zip
------------------------------------

Archive_Zip

This class provides the ability to handle Zip files using native PHP. No extra libraries are needed. This class offers tools that can create, list, extract, unpack, append Zip files.

Ändere es doch mal so ab:

PHP:
    if (obj->extract(array('by_preg' => "/.*jpeg$/")))
    { // all jpeg files
           echo 'Extraction successfully!';
    } else {
        echo 'Error in file extraction: ' . $obj->errorInfo();    
    }
 
Zurück