Ankündigung

Einklappen
Keine Ankündigung bisher.

Bilder die nicht einem bestimmten Muster entsprechen löschen

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

  • Bilder die nicht einem bestimmten Muster entsprechen löschen

    Hallo,
    ich habe in einem Ordner unterschiedlichste Fotos mit den unterschiedlichsten Dateiendungen liegen, die großteils alle nummeriert sind, zum Beispiel
    1.jpg
    2.jpg
    3.png
    4.gif
    5.jpg
    Dann gibt es in dem Ordner leider noch viele andere Fotos, die nicht diesem Schema entsprechen, also einen anderen Dateinamen haben und eben keine nummer.
    Ich weiß das man Fotos mit unlink entfernt, aber wie kann ich jetzt rausfinden, ob es sich bei dem Foto um eines handelt, dass nicht nummeriert ist?
    Alle Fotos in dem Ordner, die eben nicht "nummeriert" sind, sollen gelöscht werden


  • #2
    Ist das nicht eher eine einmalige Aufgabe, die man einmal mit einem Dateimanager macht? Oder woher kommen diese Dateien? Lässt sich dieses unerwünschte Verhalten nicht abstellen?

    Kommentar


    • #3
      tja, ich glaub ich bin da an eine Sache falsch rangegangen.
      Es werden mehrere Textfelder ausgefüllt und unter anderem kann auch ein Foto hochgeladen werden. Dieses Foto zeige ich nach dem hochladen in einem div als "Vorschau" an.
      Erst wenn dann das ganze Formular ausgefüllt und abgesendet wird, werden die Infos in die Datenbank gespeichert und das Foto mit rename mit der ID des Datensatzes benannt.
      Funktioniert auch alles wirklich einfwandrei. Jetzt bin ich aber drauf gekommen dass es passieren kann, dass jemand zwar das Foto hochlädt, dann aber den Datensatz nicht speichert weil er vielleicht das Browserfenster schließt oder sonstiges. Dann habe ich das Foto natürlich trotzdem mit dem original dateiname im Ordner liegen. Daher war meine Überlegung, einfach einmal am Tag oder so ein sript auszuführen, dass mir solche wahrscheinlich selten auftretende Fotos entfernt.

      Kommentar


      • #4
        Warum legst du diese Dateien nicht in einen anderen Ordner? Wieso alles zusammen in einen Ordner, nur um dann herumsortieren zu müssen? Und was passiert, wenn jemand eine Datei mit einem Namen hochlädt, die schon in dem Ordner existiert? Ich würde davon abraten Dateien mit dem Namen abzulegen, den der Client übergibt. Erstens kann es zu solchen Konflikten kommen und zweitens ist das eine mögliche Sicherheitslücke. Dateinamen immer selber generieren.

        Kommentar


        • #5
          aha, ok. Danke für den Hinweis. Aber den richtigen Namen des Fotos weiß ich ja erst, wenn der Datensatz auch wirklich abgespeichert wurde?
          Und rein Interesse halber: Was meinst mit Sicherheitslücke?

          Kommentar


          • #6
            Zitat von majak01 Beitrag anzeigen
            aha, ok. Danke für den Hinweis. Aber den richtigen Namen des Fotos weiß ich ja erst, wenn der Datensatz auch wirklich abgespeichert wurde?
            Wenn du den Namen vorgibst, dann weißt du ihn sofort.

            Zitat von majak01 Beitrag anzeigen
            Und rein Interesse halber: Was meinst mit Sicherheitslücke?
            Prüfst du ob im Dateinamen nur erlaubte Zeichen vorkommen? Denn theoretisch könnten da auch ganze Pfadangaben vorkommen und der Angreifer bricht dadurch aus deinem Ordner aus und könnte auf deinem Server beliebig Dateien platzieren. Und auch diverse Sonderzeichen könnten Probleme machen. Zum Beispiel dass PHP oder das System fehlerhaft funktioniert.

            Kommentar


            • #7
              ich merke gerade wieder dass ich blutiger Anfänger bin. Ich prüfe den Dateityp, ob es sich auch wirklich um ein Foto handelt, die Dateigröße, aber auf erlaubte Zeichen im Dateinamen wäre ich nicht gekommen. Echt ein wahnsinn auf was man alles achten muss.
              Danke auf jeden Fall.

              Kommentar


              • #8
                Erst wenn dann das ganze Formular ausgefüllt und abgesendet wird, werden die Infos in die Datenbank gespeichert und das Foto mit rename mit der ID des Datensatzes benannt.
                Genau dieses Verhalten kannst du doch auch für deinen Zwischenspeicher benutzen. Als Datenbank kannst du dann auch die Session nehmen, und die Dateien legst du in einem Verzeichnis mit dem Namen des Users ab, um Dubletten zu vermeiden. Oder nimmst den Benutzernamen als Prefix und den Timestamp als Namen, falls nur eine Datei gleichzeitig hochgeladen werden soll. Wenn der User sich das nächste Mal einloggt, löscht du die Dateien, oder per Cron. Den richtigen Namen speicherst du nur irgendwo mit, aber nicht im Dateinamen. (Nur so als Beispiel)
                You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

                Kommentar


                • #9
                  Ich hab das ganze jetzt gelöst, vielen Dank.
                  Meine Lösung: Hab alles verworfen und neu begonnen.
                  Das Foto wird jetzt nicht hochgeladen sondern erstmal als Vorschaufoto mit ajax angezeigt.
                  Erst wenn man auf speichern klickt, wird der Datensatz gespeichert und das foto mit dem benötigten Namen hochgeladen.

                  Kommentar

                  Lädt...
                  X