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
robotto7831a Geschrieben 17. Juni 2007 Geschrieben 17. Juni 2007 Hallo, definiere Zwischenspeicherung. Frank
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...)
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
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.
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!?
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"
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
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.
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
burnersk Geschrieben 23. Juni 2007 Autor Geschrieben 23. Juni 2007 Danke, sorry für den post. aber ich stehe gerade etwas unter zeitdruck
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden