Zip ohne innere Ordner generieren

Diskutiere Zip ohne innere Ordner generieren im Ruby, php, Perl, Python ... Forum im Bereich Programmieren unter Linux/Unix; Morgen, ich hab ne kleine Funktion die mir ein paar Bilder in ein Archiev Packt und das ganze dann Zipt um Sie komfortabler Downloaden zu können....

  1. sono

    sono Sack Flöhe Hüter

    Dabei seit:
    31.01.2004
    Beiträge:
    1.299
    Zustimmungen:
    0
    Ort:
    http://webfrap.de
    Morgen, ich hab ne kleine Funktion die mir ein paar Bilder in ein Archiev Packt und das ganze dann Zipt um Sie komfortabler Downloaden zu können.

    Was mich stört ist, dass ich immer die kompletten Pfadnagaben in dem Zipfile haben, obwohl angeblich mitd er -D Option die Pfade nicht mitgenommen werden sollten.
    Zumindest habe ich das so verstanden.


    Code:
    	foreach ( $bilder as $bild ){
    		$adr = $bild['adr'];
    		$id = $bild['id'];
    		$name = $bild['name'];
    
    		$source = "${picpath}${adr}/$id";
    		debug_message("$source<br />");
    		$dest = "$tempfolder/$name";
    		copy( $source  ,  $dest );
    
    	//	$zipfile .= " $dest";
    	}
    
    	if( file_exists("${picpath}/temp/${id}.zip")){
    		unlink("${picpath}/temp/${id}.zip");
    	}
    // 	exec( "zip -r -0 -D ${picpath}/temp/${id}.zip $zipfile " );
    	exec( "zip -r -0 -D ${picpath}/temp/${id}.zip ${picpath}/temp/${id} " );
    
    Aber egal ob ich die Files Einzell oder den ganzen Odner übergebe ich habe immer die Pfadangaben mit im Zipfile drin.

    Kann mir einer nen Wink mim Zaunpfahl geben wie ich die da raus bekomme?

    Gruß Sono
     
  2. Anzeige

    Anzeige

    Wenn du mehr über Linux erfahren möchtest, dann solltest du dir mal folgende Shellkommandos anschauen.


    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Wolfgang, 19.03.2006
    Zuletzt bearbeitet: 19.03.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Gehe ich recht , dass es hier um PHP geht?
    Kenn mich damit zwar sehr wenig mit PHP aus, da ich alles in Perl mache:
    Aber soweit ich das richtig sehe übergibst du als Dateinamen ja den gesamten Pfad mit.

    Code:
    exec( "zip -r -0 -D ${picpath}/temp/${id}.zip ${picpath}/temp/${id} " );
    
    Wenn du die Namen brauchst, dann versuch mal nur die Namen zu übergeben.
    Wobei du dabei natürlich vorher im Verzeichnis stehen musst.



    Eventuell hilft dir ja die Variable :
    ZIPOPT="-D"; export ZIPOPT
    EDIT:// sehe gerade, dass du ja das -r weglassen kannst/sollst.
    Gruß Wolfgang
    PS Von welchem zip reden wir eigentlich?
     
  4. #3 sono, 19.03.2006
    Zuletzt bearbeitet: 19.03.2006
    sono

    sono Sack Flöhe Hüter

    Dabei seit:
    31.01.2004
    Beiträge:
    1.299
    Zustimmungen:
    0
    Ort:
    http://webfrap.de
    standard zip aus von Linux.

    Aufgerufen über exec. Die Zipfunktion von PHP "mog i ned".

    Ich teste das mal ohne r. Thx.
    Nachtrag:

    Habs hinbekommen:

    Code:
    	foreach ( $bilder as $bild ){
    		if( is_array( $bild ) ) { // Testen ob das ding nicht schon gelöscht wurde
    				$adr = $bild['adr'];
    				$id = $bild['id'];
    				$name = $bild['name'];
    
    		$source = "${picpath}${adr}/$id";
    		debug_message("$source<br />");
    		$dest = "$tempfolder/$name";
    		copy( $source  ,  $dest );
    		}
    		$zipfile .= " $name";
    	}
    
    	if( file_exists("${picpath}/temp/${id}.zip")){
    		unlink("${picpath}/temp/${id}.zip");
    	}
     	exec( "cd ${picpath}/temp/${id} && zip -0 -D ${picpath}/temp/${id}.zip $zipfile " );
    
    geht doch nichts über Linux Grundlagen, gg.

    Gruß Sono
     
  5. #4 Wolfgang, 19.03.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo @sono

    Dann wird der Pfad wohl doch als Dateiname mit übernommen.
    Warum du das -r verwenden wolltest ist mir ohnehin nicht klar.

    Was ist standard -zip?
    Gruß Wolfgang

    PS BITTE schreib doch mal Standard. ;)
    Ich krieg sonst Augenkrebs.:D
     
  6. sono

    sono Sack Flöhe Hüter

    Dabei seit:
    31.01.2004
    Beiträge:
    1.299
    Zustimmungen:
    0
    Ort:
    http://webfrap.de
    wo liest du dass den mit "t" ? :devil:

    Ich meine das Programm "zip" aus /usr/bin/zip
    (debian: apt-get install zip) .


    -r ist dann wichtig wenn ich nicht die Dateien einzelln sondern nur einen Ordner übergebe, desse Inhalt ins Archiv soll.
    Wenn ich da kein -r angebe habe nämlich die Dateien aus dem Odner nicht mit im Archiv. Is klar ne?

    Aber jetzt manchs ichs quasi von hinten durch die Brust ins Auge, aber so lange es geht passt das so.


    Gruß Sono
     
  7. #6 Wolfgang, 19.03.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Jo, ne schon klar. :D
    Nur ging aus deinem Skript nicht hervor, dass du das so handeln willst.
    Deshalb die Frage.

    Standard ist zip bei Debian aber nicht.
    Ich habe es z.B. bis heute nicht installiert, da ich es nicht brauche und nicht per default von Installer mitgebracht wird. wer braucht schon zip, wenn er bzip2 haben kann?:D
    Mich hatte auch mehr die Version interessiert, da ich mir mal die richtige Manpage ansehen wollte.

    Gruß Wolfgang
     
  8. sono

    sono Sack Flöhe Hüter

    Dabei seit:
    31.01.2004
    Beiträge:
    1.299
    Zustimmungen:
    0
    Ort:
    http://webfrap.de
    Jemand der vermeiden will dass 200 Supportmails eingehen, weil Windowsuser anfragen wie man dieses "komische" ".bz2" Teil aufbekommen soll.

    :devil:

    Versuche nie einem Standard User etwas Neues beizubringen solange es nicht absolut notwendig ist. Du wirst es bereuen.

    Gruß Sono
     
  9. #8 Wolfgang, 19.03.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Ich wollte dir ja nicht zip ausreden.:)
    IMHO unterstützt aber auch Winzip bz2 tar und gzip.
    Von den "Experten" mit Windows auf der Kiste, welche von mir zugesandte
    tar bzip oder gzip Archive erhalten haben, habe ich bisher keine Nachfragen erhalten.
    Und da wurde schon wegen weit trivialeren Dingen Alarm geschlagen. :D

    Gruß Wolfgang
    PS Wenn du morgen Standard noch richtig schreibst, bekommst du ein Bienchen von mir. ;)
     
Thema: Zip ohne innere Ordner generieren
Besucher kamen mit folgenden Suchen
  1. zip mit pfad

    ,
  2. linux zip ohne pfade

Die Seite wird geladen...

Zip ohne innere Ordner generieren - Ähnliche Themen

  1. Linux Foundation unterstützt Projekt für die Interoperabilität von Drohnen

    Linux Foundation unterstützt Projekt für die Interoperabilität von Drohnen: Die Linux Foundation nimmt ein Projekt für die Interoperabilität von unbemannten Flugobjekten unter ihrem Dach auf. Ziel ist es, Open Source bei...
  2. Xfce 4.16 ohne GTK4 und Wayland

    Xfce 4.16 ohne GTK4 und Wayland: Wie die Entwickler von Xfce bekannt gaben, wird die kommende Version der beliebten Desktop-Umgebung erst im kommenden Jahr erscheinen. Der Fokus...
  3. Linux-Floppy-Treiber ohne Betreuer

    Linux-Floppy-Treiber ohne Betreuer: Der Linux-Floppy-Treiber hat zur Zeit keinen Betreuer mehr, ein Nachfolger wird noch gesucht. Auch wenn Floppy-Hardware weitgehend obsolet ist,...
  4. Ubuntu 19.10 ohne Unterstützung für 32 Bit

    Ubuntu 19.10 ohne Unterstützung für 32 Bit: Canonical verabschiedet sich für mit Ubuntu 19.10 offiziell von der 32-Bit-Plattform. Weiterlesen...
  5. Robot-Hürde ohne robot.txt, htaccess

    Robot-Hürde ohne robot.txt, htaccess: Hallo zusammen, gibt es eine benutzerfreundliche, sichere Möglichkeit Robots von bestimmten Webseitenbereichen auszuschließen? Ich gehe derzeit...
  1. Diese Seite verwendet Cookies um Inhalte zu personalisieren. Außerdem werden auch Cookies von Diensten Dritter gesetzt. Mit dem weiteren Aufenthalt akzeptierst du diesen Einsatz von Cookies.
    Information ausblenden