b0d0
Goto Top

Hochgeladene Dateien mit Ablaufdatum versehen

Dateien, die hochgeladen wurden automatisch beim scriptaufruf löschen, wenn älter als 2 Tage.

Hallo zusammen,

ich benötige ein Script, dass feststellt, wie alt eine Datei ist, die über ein bereits bestehendes Formular hochgeladen wurde.
Wenn die Datei älter als 2 Tage ist, soll Sie automatisch via Scriptaufruf gelöscht werden. Hat jemand einen anhaltspunkt ??
Oder noch besser vielleicht sogar schon eine fertige Funktion ??

Habe mich bei Google schon dumm und dusselig gesucht.

Gruß
B0d0

Content-ID: 85419

Url: https://administrator.de/contentid/85419

Ausgedruckt am: 22.11.2024 um 05:11 Uhr

EvilMoe
EvilMoe 14.04.2008 um 07:42:33 Uhr
Goto Top
PHP bietet schon die Funktionen dafür. Musst du dir nur noch so eine kleines Script zusammenbauen.

Verzeichnisse auslesen geht mit "readdir"
Letzte Dateiänderung kann man auslesen mit "filemtime"
Dateien löschen geht mit "unlink"
Spackenbremse
Spackenbremse 18.04.2008 um 13:46:16 Uhr
Goto Top
...entweder so, oder meine Version (villt bissle umständlicher):

Du machst ne SQL-DB auf, in der du ID,Name,Link,Upload-Datum,Ablauf-Datum und ggf Aktuell reinschreibst.

Mit dem Upload musst du dann das Ablaufdatum eingeben, das Upload´-Datum wird automatisch ermittelt . Nun kannst du mit PHP abfragen, ob das Ablauf-Datum XX Tage von dem Upload-Datum entfernt ist. Wenn ja, z.b. Aktuell auf 0 setzen. Dein Script zeigt dann nur Files an, die Aktuell auf 1 haben....
B0d0
B0d0 21.04.2008 um 07:01:01 Uhr
Goto Top
Auf deutsch gesagt, ich brauche eine DB, in der ich die Daten inkl. benötiger Informationen abspeichere oder auf die Datei verweise? Ohne DB wohl nicht möglich oder ?
B0d0
B0d0 22.04.2008 um 07:22:41 Uhr
Goto Top
Ich habe es jetzt diese Art gelöst.
"delenddate" ist die Variable, in der gespeichert wird, nach wievielen Tagen die
Datei gelöscht wird.

<?php
       					
       					$time = date ("d.m.Y ", filemtime($target.$file));  
       					$today = date ("d.m.Y");  
       					$result = $today - $time;
       					$erg = date ("d.m.Y ", filemtime($target.$file))+ $delenddate;  
       					$erg = $erg.".".date("Y");  
       						if ($result == $delenddate)
       						{
       							
       							unlink($target.$file);        					
}
       						else
       						{
?>

Das ist nur ein Codeschnipsel!
B0d0
B0d0 08.05.2008 um 09:07:51 Uhr
Goto Top
Moin,

ich habe die ganze Geschichte nun noch einmal neu angefangen. Wie ??
Ich habe eine Datenbank erstellt, mit einer Tabelle, die folgende felder zugewiesen bekommen
hat:

ID | datei | Link | uploaddatum | ablaufdatum

Ich bin auch schon soweit, dass ich die Daten in der MySQL DB gespeichert habe. Nun habe ich aber ein Problem! Ich möchte in dem Feld "Link" einen Link speichern, den ich später auf der Webseite wieder ausgeben möchte. Mit dem Link soll man auf die in der DB gespeicherten Daten zugreifen können. Aber wie mache ich das?? Ich komme nicht drauf, wie ich wieder auf die gespeicherten Daten zugreifen kann. Kann mir jemand einen denkanstoß geben ??

Gruß
B0d0
Spackenbremse
Spackenbremse 24.05.2008 um 11:59:43 Uhr
Goto Top
Wenn ich das richtig verstanden habe liegt die Datei auf irgendeinem Server und in der DB ist der Link zu der Datei, richtig?

Wenn ja, dann versuch das mal:
(BSP mit einer Tabelle)

<table>
<tr>
    <td>ID</td>
    <td>Link</td>
    <td>Upload- & Ablaufsdatum</td>
</tr>
<?

$sql = "SELECT * FROM {{tabellennamen}}";  
$result = mysql_query($sql) OR die (mysql_error());
while($row = mysql_fetch_assoc($result))
{ ?>
<tr>
    <td><? echo $row['ID']; ?></td>  
    <td><a href='<? echo $row['link']; ?>'>Link</a></td>  
    <td><? echo $row['uploaddatum']; ?> - <? echo $row['ablaufdatum']; ?></td>  
</tr>

<? } ?>
</table>

So gibt die Tabelle für jeden Eintrag in der Datenbank eine Zeile in der Tabelle mit ID, Link und den Daten aus.

Ich hoffe ich hab alles richtig verstanden und konnte dir helfen.

mfg