Zip ohne innere Ordner generieren

Dieses Thema im Forum "Ruby, php, Perl, Python ..." wurde erstellt von sono, 19.03.2006.

  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

    Schau dir mal diesen Ratgeber an. Viele Antworten inkl. passender Shell-Befehle!
    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. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  9. 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
     
  10. #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

Die Seite wird geladen...

Zip ohne innere Ordner generieren - Ähnliche Themen

  1. Gnome ohne Systemd bei Gentoo und Funtoo

    Gnome ohne Systemd bei Gentoo und Funtoo: Das GitHub-Projekt »GNOME Without Systemd« will für Gentoo und dessen Derivat Funtoo die Möglichkeit bieten, die Desktopumgebung Gnome ohne...
  2. Firefox 45 ohne Tab-Gruppen

    Firefox 45 ohne Tab-Gruppen: Die Mozilla Foundation hat planmäßig die Version 45 ihres Webbrowsers Firefox veröffentlicht. Die Tab-Gruppen wurden aus dem Browser in ein Add-On...
  3. Dronecode-Projekt bringt kommerzielle Drohnenanwendungen voran

    Dronecode-Projekt bringt kommerzielle Drohnenanwendungen voran: Das vor über einem Jahr gegründete Dronecode-Projekt zählt jetzt 51 Mitglieder und und verstärkt seine Bemühungen um eine einheitliche Plattform...
  4. Ring: Sprach-, Video- und Chat-Kommunikation ohne zentrale Server

    Ring: Sprach-, Video- und Chat-Kommunikation ohne zentrale Server: Savoir-faire Linux inc. und das SFLphone Development Team haben die erste öffentliche Alphaversion einer neuen Sprach-, Video- und...
  5. Neue Flugmodi für DJIs Linux-Drohnen

    Neue Flugmodi für DJIs Linux-Drohnen: Der Drohnenhersteller DJI hat auf der IFA 2015 fünf neue Flugmodi für mehrere seine Drohnen Inspire 1 und der Phantom-3-Serie angekündigt. Mit...