Paul: datei löschen - ftp_delete() oder unlink()

hallo zusammen,

folgendes problemchen:
wenn ich eine datei per php-upload in ein dir am server lade, kann ich sie danach mit unlink() auch wieder löschen. bleibt die datei allerdings länger am server, kommt die fehlermeldung [function.unlink]: Permission denied.

kann, das mit den schreibrechten zu tun haben? wie gesagt, wenn ichs gleich lösch, funktionierts!

p

  1. Hi,

    wenn ich eine datei per php-upload in ein dir am server lade, kann ich sie danach mit unlink() auch wieder löschen.

    Meinst du aus dem Upload-temp-Verzeichnis? Daraus brauchst du sie nicht wieder loeschen, das passiert bei Scriptende automatisch.

    Oder meinst du, nachdem du sie von dort im verarbeitenden Script woanders hin kopiert hast (move_uploaded_file)?
    Dann verstehe ich aber nicht, was das -

    bleibt die datei allerdings länger am server, kommt die fehlermeldung [function.unlink]: Permission denied.

    • fuer einen Unterschied machen sollte.

    Dann muesste waehrend dem "laenger" ja noch irgendwas anderes mit der Datei gemacht worden sein, bspw. Besitzer oder Rechte geaendert worden sein.

    MfG ChrisB

    1. nö, mit der datei wird nichts gemacht, die liegt nur am server.
      wenn ich sie hochlade (scriptzeile siehe unten!), kann ich sie mir auflisten und auch löschen. will ich sie am nächsten tag löschen, ,gehts auf einmal nicht mehr. irgendwie hab ich im hinterkopf, dass da irgendwas war: dass das löschen nur geht, wenn die datei auch per php upgeloadet wurde. das ist zwar der fall, aber vielleicht vergisst der server das nach einer zeit???

      hier das upload-script:

      if (file_exists("uploads/". $_FILES['datei']['name'])) {
            echo "Datei " . htmlspecialchars($_FILES['datei']['name']) . " existiert schon!";
         }
      else{
      // Temporäre Datei in das Zielverzeichnis
      // des Servers verschieben.
      move_uploaded_file($_FILES["datei"]["tmp_name"],"uploads/".$_FILES["datei"]["name"]);

      }

      und hier noch das unlink-script:

      $file=$_GET['file'];
      if (unlink("uploads/$file")){

      echo "gelöscht";
      }
      else{
      echo "Fehler: vermutlich ist die gewünschte Datei nicht vorhanden";
      }

  2. danke für die zahlreichen tipps;-)

    ich habs jetzt einfach mit ftpdelete() gemacht, da gibts kein problem mit den rechten...

    p

    1. danke für die zahlreichen tipps;-)

      ich habs jetzt einfach mit ftpdelete() gemacht, da gibts kein problem mit den rechten...

      Na ich weiss nicht ob du damit zufrieden sein solltest, denn die Ursache ist nicht behoben und den Grund dafür zu wissen, läge in meinem Bestreben.

      Denn es könnte durchaus sein in deinem Fall, dass Jemand(oder ein Programm) Zugriff auf deine Datein verübt und das würd mich nachdenklich stimmen.

      Ich hate mal etwas ähnliches erlebt als ich noch sehr unerfahren war. Einen Server auf dem ich verschiedene Benutzer eingerichtet hatte. Da dachte ich einen Benutzer mit allen Rechten einzurichten und so könnte ich halt von diesem einen FTP-Account alle anderen Benutzerdateien auch verwalten. Das ging auch eine Weile gut, bis ich irgendwann merkte, dass ich unter einem anderen Benutzernamen die Dateien dieses Nutzers nicht mehr ändern konnte, warum? weil ich vorher als sozusagen SUPERADMIN mit rumgespielt hatte. Und damit hatte nur noch der Superadmin die kompletten Rechte an Daiteioperationen dieser Datei.

      Paul