Willkommen in der Webstatt Zum Webstatt Blog und Stories
Al3x0r Al3x0r am 13.08.06 20:52

Guten Tag,

Wie kann ich online gepackte archive entpacken und welche Archive kann ich entpacken?

Ich habe es mit dem Befehl rar_open versucht aber der scheint nicht zu funktionieren.

Ist es prinzipiell möglich .rar archive online zu entpacken ?

Hat vielleicht jemand eine funktionierende Funktion dafür ?

All das was ich im Internet gefunden habe war irgendwie nicht zu gebrauchen.

mfg Alexander

netcup.de Warum gibt es hier Werbung?
Franky Franky am 13.08.06 20:56

rar...so ne technik für sich...benutz lieber zip oder noch besser tar(.gz).
da kannst du dann auch sicher sein das es (im prinzip) funktioniert...

warum genau kannst du denn nicht mit rar_open() entpacken?

Al3x0r Al3x0r am 13.08.06 21:08

Es kommt immer ein Fehler (habe das Script mitlerweile gelöscht und weiß deswegen auch nicht mehr was für einer)...

Denke ich werde das dann mit tar.gz machen oder gibt es eine Möglichkeit komplette Ordner hochzuladen ohne sie zu packen.

Denke das ginge nur mit Java oder? Man sieht ja soviel mit Drag and Drop und ganze Ordner hochladen.

mfg Alexander

Franky Franky am 13.08.06 21:10

jap...dazu er hier

mab mab am 13.08.06 21:52

Hi,

das hier verwende ich für *.zip Dateien.

$zip = system("unzip -qq $zip_verz -d $original_verz");

Wenn $zip FALSE zurückliefert, dann ist das Entpacken fehlgeschlagen.

milahu milahu am 13.08.06 22:43

Kommt halt ganz drauf an, was der Server so zu bieten hat..

Hier ein paar Dekompressionsbefehle:

unrar x archiv.rar
tar xf archiv.tar
tar xf archiv.tar.gz
tar xjf archiv.tar.bz2
unzip archiv.zip
unace x archiv.ace

Näheres zu dein einzelnen Befehlen in den man-pages.

Al3x0r Al3x0r am 14.08.06 14:36

Quote
Original von mab
Hi,

das hier verwende ich für *.zip Dateien.

$zip = system("unzip -qq $zip_verz -d $original_verz");

Wenn $zip FALSE zurückliefert, dann ist das Entpacken fehlgeschlagen.


$zip_verz ist das zip archiv und $original_verz das archiv wohin entpackt werden soll ?

mfg Alex

Franky Franky am 14.08.06 14:42

...und du solltest system() benutzen dürfen...

Al3x0r Al3x0r am 14.08.06 14:46

Quote
Original von Franky
...und du solltest system() benutzen dürfen...


Wenn beim Aufruf der Funktion:

function extract_zip($zip_verz, $original_verz) {
$zip = system("unzip -qq $zip_verz -d $original_verz");
}


kein Fehler kommt heißt das im Umkehrschluss ich darfs benutzen ?

edit:// Irgendwie findet man da auch kein schönes beispiel im Internet, dass vielleicht mit der Zlib arbeitet oder so... grrr.. und ne andere Möglichkeit nen ordner hochzuladen außer FTP gibt es nicht oder ? (es soll barrierefrei sein, also kein JS oder so )

mfg Alex

edit://

Habe mir nochmal was gebastelt.

will aber auch nciht so wie ich will.

jmd ne idee ? :D

unzip_file("pattemplate.zip");

function unzip_file($zip_file)
{
$uzp = gzopen($zip_file,"r");
$unzip_file=gzread($uzp,-1);
gzclose($uzp);
return $unzip_file;
}

phore phore am 14.08.06 15:20

ich hab da ein zip-entpack script dass ich für eine gallerie benutzen werde - ist halt einfach ein teil von meinem script aber vielleicht hilft es dir weiter:

function unZip ($quelle, $ziel) {

$zip_zeiger = zip_open($quelle);
while($zip_entry = zip_read($zip_zeiger)) {
$i++;
if (zip_entry_open($zip_zeiger, $zip_entry, 'r')) {
$buffer = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
# Dateityp überprüfen, nur .jpg erlaubt
if (substr(zip_entry_name($zip_entry), -4) != '.jpg') {
# Fehler - die Datei ist nicht .jpg
return false;
}
$fp = fopen($ziel.zip_entry_name($zip_entry),'w+');
fwrite($fp, $buffer);
zip_entry_close($zip_entry);
}
else {
# Fehler - Datei kann nicht gelesen werden
return false;
}
}
zip_close($zip_zeiger);
}


das script öffnet ein zip ($quelle), durchläuft jede datei, prüft ob es ein .jpg ist und kopiert sie anschliessend nach $ziel.

so long

Al3x0r Al3x0r am 14.08.06 15:27

genau dafür brauche ich sowas auch :D

Hoffe mal mit deiner Funktion klappt ist.

danke schonmal

mfg Alex

milahu milahu am 14.08.06 16:15

> und ne andere Möglichkeit nen ordner hochzuladen außer FTP gibt es nicht oder ?

Gibt es: WebDAV, eine Erweiterung des HTTP Protokolls.
Aber bis sich das mal als Standard durchgesetzt hat... :-\

Al3x0r Al3x0r am 14.08.06 16:19

Naja nun hat zum Glück mal alls mitn entzippen geklappt...

Danke für eure Hilfe, speziell Danke an phore für die Funktion :D

mfg Alex

phore phore am 14.08.06 16:30

dann ist ja gut. bitte schön.

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt