burnersk Geschrieben 17. Juni 2007 Geschrieben 17. Juni 2007 Hallo. Ich möchte ein PHP5-Script schreiben, dass gespeicherte Dateien in meiner MySQL5 Datenbank ohne Zwischenspeicherung direkt zum Clienten sendet. Ich denke mir nun: - MySQL Verbindung öffnen - Binärdaten der Datei laden - Binärdaten gleich über das aufgerufende Script senden. Features: - Dateiname muss mit übergegen werden (wird übergeben aus DB. Bsp: $filename) - Seite darf nicht auf eine blank-Seite umgeleitet werden. Browser muss Seitenaufruf als Downloadaufruf interpretieren Ich habe mit das so gedacht: DB: - [!] category schlüsselfeld1, bsp: freeware - [!] file_title schlüsselfeld2, dateiname, bsp: datei.endung - file_binary binärdatei Variablen ans PHP Script werden übergeben: getfile.php?cat_id=freeware&file_title=datei.endung Ich habe bis jetzt nur (eigene/fremde) lösungen gefunden mit zwischenspeicherung Zitieren
robotto7831a Geschrieben 17. Juni 2007 Geschrieben 17. Juni 2007 Hallo, definiere Zwischenspeicherung. Frank Zitieren
burnersk Geschrieben 17. Juni 2007 Autor Geschrieben 17. Juni 2007 Datei aus DB laden und in Datei auf Server speichern. Dann Datei auf Server an den Client senden. (fopen etc...) Zitieren
Amstelchen Geschrieben 20. Juni 2007 Geschrieben 20. Juni 2007 Datei aus DB laden und in Datei auf Server speichern. Dann Datei auf Server an den Client senden. (fopen etc...) du kannst das doch auch direkt machen. das BLOB-feld (falls es sich um ein solches handelt, was du leider nicht preisgegeben hast) auslesen, einen header() senden und den inhalt des binärfeldes mit echo() ausgeben. s'Amstel Zitieren
burnersk Geschrieben 22. Juni 2007 Autor Geschrieben 22. Juni 2007 Hi, und wie kann ich einen Dateinamen übergeben? Bislang waren die Namen getfile.php?.... etc. Zitieren
robotto7831a Geschrieben 22. Juni 2007 Geschrieben 22. Juni 2007 Was für einen Dateinamen? Frank Zitieren
burnersk Geschrieben 22. Juni 2007 Autor Geschrieben 22. Juni 2007 Was für einen Dateinamen? Frank Na ja, den der Datei... Die ich in der Datenbank gespeichert habe "datei.endung" heißt momentan: "getfile.php?cat=testkategorie&title=datei&typ=endung". Nicht gerade aufschlussreich, oder!? Zitieren
burnersk Geschrieben 22. Juni 2007 Autor Geschrieben 22. Juni 2007 Es ist für den User einfacher (besonders für *nicht FIs*) den Dateinamen zu haben anstatt: > Herunterladen von "getfile.php?id=142" eben > Herunterladen von "datei.endung" Zitieren
robotto7831a Geschrieben 23. Juni 2007 Geschrieben 23. Juni 2007 Ich versteh nicht was Du willst. Der Download wird doch über einen Link aufgerufen und dort ist es doch egal wie der Link lautet oder nicht? Frank Zitieren
burnersk Geschrieben 23. Juni 2007 Autor Geschrieben 23. Juni 2007 Nicht den Link. Man kann den Dateinamen über *wasfüreinheaderauchimmer* dem client übermitteln. User, die gerade mal wissen, wie man ein pc anmacht, klicken auf "Abbrechen", wenn nicht "datei.endung" bei "Speichern unter" steht sondern "getfile.php?id=1243465465467". Oder der user lädt die Datei runter. nach einer woche braucht er die datei... "1243465465467" kann man sich doch gut merken!!!! nein! ich brauche doch nur diese *zensiert* header("xxx"); anweisung zur übermittlung des Dateinamens. Zitieren
robotto7831a Geschrieben 23. Juni 2007 Geschrieben 23. Juni 2007 Ah. header("Cache-control: private"); header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=".$dateiname); Frank Zitieren
burnersk Geschrieben 23. Juni 2007 Autor Geschrieben 23. Juni 2007 Danke, sorry für den post. aber ich stehe gerade etwas unter zeitdruck 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.