+ Antworten
Ergebnis 1 bis 6 von 6

Thema: Hochgeladene Datei ($_File) in Session?

  1. #1
    TP-Newbie picolo macht alles soweit korrekt
    Registriert seit
    Jul 2007
    Beiträge
    2

    Hochgeladene Datei ($_File) in Session?

    Hi ihr alle,

    folgendes Problem. Ich habe einen Registrierungvorgang, der über mehrere Seiten läuft und am Ende werden alle Daten per PHP aus der Session ausgelesen und in die mySQL Datenbank geschrieben.

    Ganz am Anfang soll der User ein Bild hochladen können. Dieses Bild möchte ich aber nur auf dem Server haben, wenn der User sich auch wirklich registriert. Bricht dieser den Prozess vorher ab kann ich diese Dateien nicht gebrauchen.

    Die hochgeladenen Dateien werden ja nun leider im temp Ordner gelöscht, wenn das script beendet wurde und somit sind diese schon auf der zweiten Seite nicht mehr verfügbar. Nun könnte ich sie ja nun schon auf der ersten Seite per move_uploaded_file verschieben aber das will ich ja nun nicht. Wie kann ich das lösen.
    • Kann ich die Datei länger "leben" lassen?
    • Kann ich sie in die Session schreiben? nicht wirklich elegant oder?
    • Wie löst ihr solche Probleme?

    Ich hatte mir überlegt die Dateien in nem temp_pic Ordner zu sichern und auf jeder Seite der Webanwendung eine Funktion auszuführen, die schaut ob dort verwaiste Bilder liegen und diese ggf. löscht. Das gefällt mir aber gar nicht.

    Ich hoffe Ihr versteht was ich meine...

  2. #2
    TP-Senior MichaG bringt sich richtig ein MichaG bringt sich richtig ein
    Registriert seit
    Dec 2008
    Beiträge
    183
    Ich würde aber genau letzteres vornehmen. Bild in einen temporären Ordner schieben und den Dateinamen in die Session packen. Noch einen eigenen Garbage-Collector schreiben und fertig.
    Mit Crons wäre die Ausführung des GC am besten gelöst. Alternativ eben den GC bei jedem Request anstoßen.

    Ein anderer Lösungsweg, der auch ordentlich und sicher funktionieren würde, fällt mir dazu nicht ein. Sessions wurden für Binärdaten nicht gemacht - ob das überhaupt funktioniert müsste man testen, würde aber den o.g. Lösungsweg gehen.

  3. #3
    TP-Veteran Dome bringt sich richtig ein Dome bringt sich richtig ein Avatar von Dome
    Registriert seit
    Feb 2004
    Ort
    Stuttgart
    Beiträge
    1.289
    Was mir noch eingefallen ist, es wäre relativ komfortabel mit AJAX realisierbar... du kannst ja die ganze Registrierung auf einer Seite ablaufen lassen...
    Blos bin ich nicht so der Freund davon...

    Ansonsten wie bereits erwähnt ein zweiter Temp-Ordner mit dem Datum + Uhrzeit + Zufallszahl als Dateiname, dann kannste ganz einfach alte Dateien anhand des Dateinamens löschen lassen (z.B. per Cronjob...)
    Gruß
    Dome
    __________________
    Um mal auf das Renomee-System aufmerksam zu machen: Klick
    TP Battlebay: www.tp-battlebay.de.ki (endlich wieder Online!)

  4. #4
    TP-Specialist phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von phpBuddy
    Registriert seit
    Aug 2004
    Ort
    Kaiserslautern
    Beiträge
    4.678
    Zitat Zitat von MichaG Beitrag anzeigen
    Sessions wurden für Binärdaten nicht gemacht - ob das überhaupt funktioniert müsste man testen, würde aber den o.g. Lösungsweg gehen.
    Sessions sind Cookies, auch wenn diese auf dem Server abgelegt werden. Cookies sind, soweit ich informiert bin, auf maximal 4 KB beschränkt und sind reine Textdateien, also nicht dazu ausgelegt binäre Daten zu speichern.
    Man müsste also wohl umständlich ein eigenes Session Management schreiben um die Daten in einer DB abzulegen, wo man auch BLOBs zur Verfügung hat.
    In meinen Augen ist das Schwachsinn und der Aufwand rechtfertigt den Nutzen in keinster Weise.
    Es spricht absolut nichts dagegen, und ist auch normale gängige Praxis, Bilder temporär in einem Ordner zwischenzuspeichern und diesen von Zeit zu Zeit zu leeren.


    @ picolo
    Was ist daran so schlimm die Bilder zwischenzuspeichern und was sind die Gründe, weshalb dir das automatisierte Löschen verwaiste Bilder "nicht gefällt"?

  5. #5
    TP-Veteran marc22 hilft, wo's geht marc22 hilft, wo's geht marc22 hilft, wo's geht
    Registriert seit
    May 2006
    Beiträge
    1.570
    Sessions sind Cookies
    Wie?

    Es gibt auch keine Größenbeschränkung (Vielleicht kann man das irgendwo festlegen - davon habe ich aber noch nicht gehört.).

    Man kann auch binäre Dateien in Textform speichern (s. base64_encode).


    Aber wieso lässt Du den User das Bild nicht erst nach der Registrierung hochladen?
    ...Meine Meinung

  6. #6
    TP-Specialist Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Avatar von Stuck Mojo
    Registriert seit
    Feb 2001
    Ort
    Helmstedt/Wolfsburg
    Beiträge
    4.108
    Was? Seit wann sind Sessions auf einen Datentypen beschränkt?
    Solange Du keine Megabytes in der Session speicherst spricht überhauptnichts dagegen die Datei temporär in der Session abzulegen.

    In einer Session können im übrigen jegliche serialisierbare Datenstruktur abgelegt!

    Eine Größenbeschränkung einer Session konnte ich auf die Schnelle auch nicht finden...

    Gruß
    Jan

+ Antworten

Ähnliche Themen

  1. Leserechte für hochgeladene Bilder
    Von MichaelM im Forum Traum-Dynamik
    Antworten: 7
    Letzter Beitrag: 04.05.2009, 12:40
  2. Antworten: 2
    Letzter Beitrag: 09.03.2009, 13:44
  3. Antworten: 3
    Letzter Beitrag: 08.12.2008, 19:28
  4. Antworten: 22
    Letzter Beitrag: 27.01.2005, 18:35
  5. Antworten: 2
    Letzter Beitrag: 04.12.2003, 13:33

Stichworte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51