[PHP] is_uploaded_file

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [PHP] is_uploaded_file

    hi liebe gemeinde,
    ich habe schon länger nach einem verwendungszweck für die oben genannt funktion gesuct, jetzt habe ich scheinbar einen gefunden, allerdings haut das nicht so hin, wie ich will

    ich lese mittels opendir ein verzeichnis ein und wende die funktion dann auf die dateien an, zurückgegeben wird true und false. soweit theorie...
    sinn des ganzen ist es, verzeichnisse regelmässig zu "scannen" um uploaded files aufzuspühren und zu löschen.
    leider geht das absolut nicht.

    habe nur false rückgabewerte, obowohl ich zum test ein verzeichnis erstellt habe und einige daten hochgeladen habe, alles local.

    leider habe ich auch keine idee mehr, wie ich das realisieren koennte.

    über jede hilfe wäre ich sehr verbunden, danke

  • #2
    For proper working, the function is_uploaded_file() needs an argument like $_FILES['userfile']['tmp_name']

    PHP: is_uploaded_file - Manual

    Upgeloadete Dateien werden in der Regel von PHP automatisch gelöscht, wenn das Script beendet wird. Das brauchst du nicht selber machen.
    Zuletzt geändert von h3ll; 17.06.2010, 19:27.

    Kommentar


    • #3
      schonmal danke für die antwort!
      die php manual habe ich natürlich stets zur hand.

      leider ist dein rat keine hilfe für mein problem:
      kurz und knapp: kann ich feststellen ob eine datei irgendwann mal via http auf einen server gekommen ist?
      wenn ja, wie? is_uploaded_file scheit ja nicht zu funktinieren


      vielen dank!

      Kommentar


      • #4
        Zitat von svr Beitrag anzeigen
        kurz und knapp: kann ich feststellen ob eine datei irgendwann mal via http auf einen server gekommen ist?
        wenn ja, wie?
        Indem du zB. alle upgeloadeten Dateien in einer Datenbank einträgst. Oder indem du upgeloadete Dateien in einen gesammelten Ordner kopierst/verschiebst.

        Zitat von svr Beitrag anzeigen
        is_uploaded_file scheit ja nicht zu funktinieren
        Doch, es funktioniert. Es tut nur nicht das, was du denkst, dass es tut.

        Kommentar


        • #5
          hast du dann eine idee, wie ich "meine idee" realisieren kann=?

          danke!

          Kommentar


          • #6
            Meine Vorschläge hab ich schon genannt. Eine andere Möglichkeit seh ich nicht.

            Kommentar


            • #7
              Nur während der Verarbeitung des Upload-Request kann man feststellen, ob eine Datei hochgeladen wurde. Bei späteren Requests/Scriptaufrufen hat man keine Chance, eine hochgeladene Datei als solche zu erkennen. Deshalb muss man, wie h3ll schon sagte, beim Upload-Request einen Vermerk speichern. Punkt, Ende.

              Aus dem Thread geht bisher nicht hervor, ob die Dateien überhaupt per HTTP hochgeladen werden. Falls es sich bspw. um FTP-Upload handelt, ist PHP dabei natürlich gar nicht involviert und kann somit auch keinen Vermerk erzeugen. Per FTP hochgeladene Dateien erkennt man bestenfalls an den Metadaten wie Eigentümer oder Permissions. Man kann aber auch eine Negativliste führen (alle Dateien, die nicht per FTP hochgeladen wurden).

              Kommentar


              • #8
                Wie wäre es mit der M-Time??


                Aus meiner Wühlkiste:
                PHP-Code:
                <?php
                error_reporting
                (-1);
                ini_set('display_errors'TRUE);
                setlocale(LC_ALL,'de_DE@euro''de_DE',  'de''ge');
                date_default_timezone_set('Europe/Berlin');
                 

                class 
                DatumFilter extends FilterIterator
                {
                  protected  
                $timestamp ;
                  public function 
                __construct(Iterator $iterator$datum)
                  {
                    
                $this->timestamp strtotime($datum);
                    
                parent::__construct($iterator);
                  }
                  public function 
                accept()
                  {
                    if(
                $this->current() instanceof SPLFileInfo)
                      return 
                $this->timestamp $this->current()->getMTime();
                    else throw new 
                Exception('Kann nur auf Dateien arbeiten!');  
                  }
                }



                $dir "./";                // Verzeichnis, welches durchsucht werden soll
                $ab  "29.01.2009 16:22";  // Zeige alle ab diesem Datum

                $ite = new DatumFilter
                          new 
                RecursiveIteratorIterator(
                             new 
                RecursiveDirectoryIterator($dir)),$ab);

                // Zeige neue Dateien
                foreach($ite as $datei)
                 echo 
                $datei '<br>';

                ?>
                Wir werden alle sterben

                Kommentar


                • #9
                  Zitat von onemorenerd Beitrag anzeigen
                  Aus dem Thread geht bisher nicht hervor, ob die Dateien überhaupt per HTTP hochgeladen werden.
                  Zitat von svr Beitrag anzeigen
                  kurz und knapp: kann ich feststellen ob eine datei irgendwann mal via http auf einen server gekommen ist?
                  Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                  Schön - etwas Geschichte kann ja nicht schaden.
                  Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                  Kommentar


                  • #10
                    Hoppla, das hatte ich übersehen.

                    Kommentar

                    Lädt...
                    X