MasterEvil Geschrieben 7. Oktober 2005 Geschrieben 7. Oktober 2005 Hallo, ich habe folgendes Problem: Ich muss auf dem Server eine zip-Datei erstellen dies mache ich mit PclZip. Diese Datei wird erstellt wenn der Benutzer sie herunterladen soll. Nun hab ich diese Datei und könnte Sie auf die Page verlinken, dann hab ich aber das Problem das ich ein Cronjob laufen haben muss der in bestimmten intervallen diese Dateien wieder vom Server löscht und das will ich nicht. schön wäre es wenn man die Datei vom Server in den Cache vom Server laden könnte, dann mittels Header an den User senden und die lokale Datei gleich mit löschen. Problem ist jetzt also, wie bekomme ich die Datei in den Speicher des Servers. Also genauso wie wenn ich eine Datei per Formular uploade? Schonmal besten Dank im Voraus MFG Zitieren
tallman Geschrieben 7. Oktober 2005 Geschrieben 7. Oktober 2005 ich gehe mal davon aus, dass du die datei an einen bestimmt ort schon zu liegen hast und einfach nur noch in den cache ordner schieben willst! da soll "stream_copy_to_stream" weiterhelfen können. aus php manual (http://www.php.net/manual/de/): <?php $src = fopen('http://www.example.com', 'r'); $dest1 = fopen('first1k.txt', 'w'); $dest2 = fopen('remainder.txt', 'w'); echo stream_copy_to_stream($src, $dest1, 1024) . " bytes copied to first1k.txt\n"; echo stream_copy_to_stream($src, $dest2) . " bytes copied to remainder.txt\n"; ?> [/PHP] musst nur noch für deinen zweck anpassen! mfg Zitieren
MasterEvil Geschrieben 7. Oktober 2005 Autor Geschrieben 7. Oktober 2005 ist leider nur PHP5 und ich fahre noch mit PHP4. Der Wechsel würde ne Menge Aufwand bedeuten weil dann das Confixx angepasst werden müsste etc. außerdem hätte ich dann doch auch 2 Dateien oder? Denn mit fopen('','w') legt er ja automatisch die Datei auf dem Server an. Wenn ich per Formular eine Datei uploade liegt die doch erstmal als gecache'te Datei vor und nur wenn ich sie mit move_uploaded_file() verschiebe bleibt sie erhalten. Genau da wo die Datei vorher ist will ich meine Datei auch haben. Dann schick ich sie an den User und die Datei wird nach ablauf des Scriptes automatisch gelöscht. Is bestimmt garnicht so schwer aber erstmal die richtigen Funktionen dazu finden Zitieren
MasterEvil Geschrieben 7. Oktober 2005 Autor Geschrieben 7. Oktober 2005 Juhu ich habs jetzt geschafft so siehts dann aus: // Das erzeugt eine Tempdatei die nach Beendigung des Downloads // vom Sys automatisch gelöscht wird: $zipfile = tmpfile(); $zipfile = fopen('MeineDatei.zip', "r"); //Jetzt kann ich meine lokal erzeugte Datei wieder löschen: unlink('MeineDatei.zip'); // Und anschließend per Header an den User senden: header('Content-Description: File Transfer'); header('Content-type: application/force-download'); header('Content-disposition: attachment; filename=kassenbuch.zip;'); echo fread($zipfile, 1024); [/PHP] Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.