Veröffentlicht 17. Juni 200718 j 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
17. Juni 200718 j Datei aus DB laden und in Datei auf Server speichern. Dann Datei auf Server an den Client senden. (fopen etc...)
20. Juni 200718 j 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
22. Juni 200718 j Hi, und wie kann ich einen Dateinamen übergeben? Bislang waren die Namen getfile.php?.... etc.
22. Juni 200718 j 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!?
22. Juni 200718 j 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"
23. Juni 200718 j 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
23. Juni 200718 j 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.
23. Juni 200718 j Ah. header("Cache-control: private"); header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=".$dateiname); Frank
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.