Matt: Lösungsweg: Sessions und ein Upload

Hi,

aus dem Titel kann man nicht schlau werden ;-)
Also hier mein Problem, eigentlich fehlt es mir nur an der Idee, bzw. ich suche nur einen Weg zur Umsetzung.

Ein User loggt sich ein (Sessions). Dort kann er via Upload ein PDF hochladen. Er wählt die Datei aus, klickt auf Upload und die Datei wird in sein Verzeichnis (nach eindeutiger ID) gespeichert. Im folgenden Schritt muss er weiter Infos zu seinem PDF eintragen, erst dann erfolgt der Datenbankeintrag. Wenn er jetzt aber vorzeitig abbricht, z.B. Browser schließen, PC Absturz oder Internetverbindung-Reset, dann liegt die Datei auf dem Server, ohne den Datenbankeintrag (was auch richtig so ist!).

Bisher löse ich das ganze per Cronjob, dort wird jede Stunde gecheckt welche PDF Dateien auf dem Server liegen und ob dazu ein Datenbankeintrag vorliegt. Lieg keiner dazu vor wird das PDF gelöscht, solange es länger als 10Minuten auf dem Server liegt (nicht das gerade jemand die Daten dafür einträgt und ich damit das PDF lösche).

Kann ich das auch einfacher lösen ohne Cronjobs?

Regards,
Matt

  1. echo $begrüßung;

    Kann ich das auch einfacher lösen ohne Cronjobs?

    Irgendeinen Auslöser brauchst du. Das kann der zeitgesteuerte Cronjob sein oder eine vom Benutzer angestoßene Aktion. PHP prüft Sessions beispielsweise nur dann auf Veraltung, wenn ein Script den Session-Mechanismus aktiviert.

    echo "$verabschiedung $name";

  2. Hi,

    Kann ich das auch einfacher lösen ohne Cronjobs?

    natürlich. Ich würde die Dateien in ein über HTTP nicht erreichbares Verzeichnis speichern und erst nach erfolgtem Datenbankeintrag in das Zielverzeichnis kopieren. Dann können die Dateien zum einen problemlos auch länger dort verweilen und zum anderen könntest Du bei jedem Aufruf des Uploadscripts dieses temporäre Verzeichnis kurz checken und ältere Dateien dort löschen.

    freundliche Grüße
    Ingo

    1. Hi,

      Kann ich das auch einfacher lösen ohne Cronjobs?
      natürlich. Ich würde die Dateien in ein über HTTP nicht erreichbares Verzeichnis speichern und erst nach erfolgtem Datenbankeintrag in das Zielverzeichnis kopieren. Dann können die Dateien zum einen problemlos auch länger dort verweilen und zum anderen könntest Du bei jedem Aufruf des Uploadscripts dieses temporäre Verzeichnis kurz checken und ältere Dateien dort löschen.

      freundliche Grüße
      Ingo

      Hallo Ingo,
      das ist eine sehr gute Idee, die mir gefällt. Das werde ich gleich so Umsetzen. Beim Aufruf des Scripts (unbemerkt durch einen User), wird das Verzeichnis bzw. die Dateien darin geleert, nur wenn sie länger als 1 Stunde dort liegen.

      Danke!