Dateien nach Zeit Löschen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ablauf
bleiben
code
date
datei
datenbank
datensatz
datum
entfernen
erstellen
jemand
konzept
liegen
minute
pfad
realisieren
stehen
stunden
team
uhr
-
Hallo Leute,
Ich würde gerne wissen ob es möglich ist Daten, die in einem Verzeichnis liegen nach bestimmter Zeit automatisch zu löschen.
Sozusagen ein Verfallsdatum.
Wenn ich jetzt eine Datei um 13 Uhr hochlade läuft sie (wenn ich 2 Stunden eingestellt habe) um 15 Uhr ab.
Also jede Date darf z.B. 2 Stunden liegen bleiben bis sie gelöscht wird.
Ist das möglich? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Mithilfe einer Datenbank ist das auf jeden Fall möglich.
Nur mit einem sogenannten Cronjob könntest du die Löschung der Dateien in Real-Time realisieren, ist jedoch gar nicht nötig.
In der Datenbank sollte Pfad und Ablaufsdatum/Ablaufszeit stehen.
Sobald jemand ein Skript aufruft werden die Dateien gelöscht, die in der Datenbank "abgelaufen" sind.
Konzept verstanden?
Gruß,
dex (qap2-Team) -
qap2 schrieb:
Mithilfe einer Datenbank ist das auf jeden Fall möglich.
Nur mit einem sogenannten Cronjob könntest du die Löschung der Dateien in Real-Time realisieren, ist jedoch gar nicht nötig.
In der Datenbank sollte Pfad und Ablaufsdatum/Ablaufszeit stehen.
Sobald jemand ein Skript aufruft werden die Dateien gelöscht, die in der Datenbank "abgelaufen" sind.
Konzept verstanden?
Gruß,
dex (qap2-Team)
Das Prinzip habe ich verstanden.
Das mit den Daten in der Datenbank auch.
Allerdings weiß ich nicht wie man es schaffen kann, das die Daten nach Ablauf der Zeit gelöscht werden.
Könnte man auch ein Daten Upload erstellen, wo die Daten dann gelöscht werden?
Beitrag zuletzt geändert: 26.12.2009 16:01:21 von julian101 -
Du erstellst dir ein Script, das Folgendes tut:
Jede hochgeladene Datei muss zuvor einen Datensatz in einer Datenbank-Tabelle erhalten haben. Der sollte die Zeit des Uploads und den Dateinamen beinhalten.
Das Script liest jetzt jeden Datensatz einzeln ein (Schleife) und überprüft, ob die Zeit des Uploads schon länger als z.B. 2 Stunden her ist:
<?php if((time() - $row->upload_time) > (2*60*60)){ //do something } ?>
Wenn das der Fall ist, kannst du die Datei mit er PHP-Funktion unlink() löschen und den Datensatz ebenfalls entfernen.
Dieses ganze Script, das also die Datensätze durchgeht und solche, die älter sind als zwei Stunden, samt der Dateien aussortiert, kannst du dann z.B. alle 10 Minuten mittels Cronjob ausführen lassen.
gruß
ferdinand24
Beitrag zuletzt geändert: 26.12.2009 17:17:24 von ferdinand24 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage