Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

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 :(

Geschrieben

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]

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...