kostenloser Webspace werbefrei: lima-city


Datei erstellen und Zippen?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    gaestefun

    Kostenloser Webspace von gaestefun

    gaestefun hat kostenlosen Webspace.

    Hallo
    Ich würde gerne eine ref="/tag/datei">Datei mit PHP erstellen, zB eine Textdatei, zuvor konnte man auswählen wieviel in der Datei stehen soll, also die Anzahl.
    Jetzt bin ich so weit das PHP mir eine Datei ausgibt in der Jetzt 100xHallo steht, jetzt würde ich dies gerne zippen und vom User downloaden lassen, dannach soll die Datei wieder verschwinden. Weiß jemand wie das geht?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Geht nicht, weil Zip-Dateien (bzw. generell Archivdateien) hier nicht erlaubt sind.

    Aber grundsätzlich könnte man es z.B. so machen:

    <?php
    function create_zip(array $files = NULL, $destination = '', $overwrite = false) {
    	if(file_exists($destination) && !$overwrite) { return false; }
    	$valid_files = array();
    	if(is_array($files)) {
    		foreach($files as $file) {
    			if(file_exists($file)) {
    				$valid_files[] = $file;
    			}
    		}
    	}
    
    	if(count($valid_files)) {
    		$zip = new ZipArchive();
    		if($zip->open($destination, $overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
    			return false;
    		}
    		foreach($valid_files as $file) {
    			$zip->addFile($file,$file);
    		}
    
    		$zip->close();
    		
    		return file_exists($destination);
    	}
    	else
    	{
    		return false;
    	}
    }
    
    $files = array(
    	'datei1.ext',
    	'datei2.ext',
    	'datei3.ext'
    );
    
    $result = create_zip($files, 'testarchiv.zip');
    
    ?>


    Beitrag zuletzt geändert: 28.6.2011 15:02:27 von fabo
  4. Kann man das Zip nicht auf dem DownloadServer erstellen, oder ist das nicht möglich?
  5. Theoretisch ja. Praktisch bin ich mir da nicht ganz sicher. Tendiere aber eher zu nein.

    Beitrag zuletzt geändert: 28.6.2011 15:13:37 von fabo
  6. Autor dieses Themas

    gaestefun

    Kostenloser Webspace von gaestefun

    gaestefun hat kostenlosen Webspace.

    Ok danke erstmal für die Hilfe.
    1. Nein, die PHP Datei kommt nicht auf Lima, sondern auf einen Space wo es erlaubt ist.

    2.Jetzt fehlt nur noch eine Funktion wie ich jetzt aus dem per echo ausgegebenen Datensatz eine zu zippende Datei mache.Wenn ich einfach per Header in eine txt Datei ausgebe und die Datei dann zum Archiv hinzufüge macht er einfach nur die PHP Datei in das Archiv. Ich will aber nur die Ausgabe ins Archiv machen
  7. Du musst das Echo-Zeugs schon irgendwo (z.b. in einer Textdatei) speichern und diese dann zippen :)
  8. Autor dieses Themas

    gaestefun

    Kostenloser Webspace von gaestefun

    gaestefun hat kostenlosen Webspace.

    fabo schrieb:
    Du musst das Echo-Zeugs schon irgendwo (z.b. in einer Textdatei) speichern und diese dann zippen :)

    PDF'S kann man ja auch problemlos erstellen und zippen(genauso wie Bilder) wieso gibt es dann das nicht mit einer Textdatei?
  9. Irgendwie reden wir aneinander vorbei. Erklärst du mir bitte nochmal, was du vorhast und wo es scheitert?!
  10. Autor dieses Themas

    gaestefun

    Kostenloser Webspace von gaestefun

    gaestefun hat kostenlosen Webspace.

    Also:
    User XYZ will gerne zB alle Fillialen von Firma ABC wissen, jetzt wählt dieser zb in einem Formular aus:
    Firma: ABC,xxx,yyy,zzz
    Ausgabe: txt,sql
    Komprimiert: zip,nein

    Jetzt sucht der Server in der Datenbank nach Firma ABC, gibt diese in einem Textdokument(zb Firma-ABC.txt) aus und bietet dem User die Datei als zip(bla.zip) zum Donwload an.
    Die Datei Firma-ABC.txt extisiert nicht, sie wird Dynamisch vom Server erstellt, genauso wie bla.zip!
  11. Und was spricht nun dagegen, die erstellte Textdatei zu zippen?
  12. Autor dieses Themas

    gaestefun

    Kostenloser Webspace von gaestefun

    gaestefun hat kostenlosen Webspace.

    fabo schrieb:
    Und was spricht nun dagegen, die erstellte Textdatei zu zippen?

    ?
    Ne, die frage im moment ist, wie ich eine Dynamisch erstellte txt Datei zippe
  13. Öhm...

    <?php
    function create_zip(array $files = NULL, $destination = '', $overwrite = false) {
    	if(file_exists($destination) && !$overwrite) { return false; }
    	$valid_files = array();
    	if(is_array($files)) {
    		foreach($files as $file) {
    			if(file_exists($file)) {
    				$valid_files[] = $file;
    			}
    		}
    	}
    
    	if(count($valid_files)) {
    		$zip = new ZipArchive();
    		if($zip->open($destination, $overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
    			return false;
    		}
    		foreach($valid_files as $file) {
    			$zip->addFile($file,$file);
    		}
    
    		$zip->close();
    		
    		return file_exists($destination);
    	}
    	else
    	{
    		return false;
    	}
    }
    
    $inhalt = "Wurstgesicht";
    $handle = fopen ("datei.txt", w);
    fwrite ($handle, $inhalt);
    fclose ($handle);
    
    $result = create_zip(array('datei.txt'), 'testarchiv.zip');
    
    ?>


    ????

    Beitrag zuletzt geändert: 29.6.2011 1:30:09 von fabo
  14. Autor dieses Themas

    gaestefun

    Kostenloser Webspace von gaestefun

    gaestefun hat kostenlosen Webspace.

    So hatte ich es gemeint:
    <?php
    require("fpdf/fpdf.php");
    $pdf = new FPDF();
    $pdf->SetFont("Helvetica","B","24");
    $pdf->AddPage();
    $pdf->Write(20, "Das ist ein Test!");
    $out = $pdf->Output(" ","S");
    
    $zip = new ZipArchive;
    $res = $zip->open('user_archiv/test_'.time().'.zip', ZipArchive::CREATE);
    if ($res === TRUE) {
        $zip->addFromString('test.txt', 'Das ist ein Test!');
        $zip->addFromString('output.pdf', $out);
        $zip->close();
        echo 'ok';
    } else {
        echo 'Fehler';
    }
    ?>

    Hier der Inhalt 1x als txt und 1x als PDF

    Kann somit eignetlich geschlossen werden

    Beitrag zuletzt geändert: 29.6.2011 11:17:55 von gaestefun
  15. Ja, jetzt ist es so glaub ich richtig ;)
  16. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!