Wie lässt sich das Überschreiben gleichnamiger Dateien verhindern?

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • stupido
    Contao-Nutzer
    • 31.01.2012
    • 12

    #1

    Wie lässt sich das Überschreiben gleichnamiger Dateien verhindern?

    Hallo,

    beim Hochladen einer Datei über das Datei-Feld eines Kataloges werden gleichnamige Dateien gnadenlos überschrieben.

    Jeder Katalog speichert alle Dateien im gleichen Verzeichnis. Hängt man an verschiedene Katalogeinträge des gleichen Kataloges unterschiedliche Dateien, die den gleichen Dateinamen haben, so geht beim Speichern die bereits auf dem Server vohandene Datei verloren. Das ist fatal.

    M. E. müssten die Dateien verschiedener Katalogeinträge voneinander getrennt werden- z. B. durch Verwendung mehrerer Unterverzeichnisse oder Erzeugung eines eindeutigen Dateinamens.
    Gibt es hierfür bereits eine Lösung?

    Eine mögliche Lösung könnte so ähnlich aussehen wie hier beschrieben:

    Nur mit dem Unterschied, dass die Verzeichnisnamen sich an der ID des Katalogeintrages orientieren und nicht am Benutzer.
    Noch schöner wäre es natürlich, wenn man das Problem ohne Änderung des Sourcecodes hinbekommen könnte.
    Kann mir da jemand weiterhelfen?
  • AgentK
    Contao-Fan
    • 20.06.2009
    • 420

    #2
    Hallo,

    das Problem mit dem Upload im Katalog ist nicht neu. Ich hatte vor einiger Zeit vorgeschlagen den Upload neu zu gestalten und die Uploads jedes Users in ein eigenes Verzeichnis zu speichern. Damit wäre aber nicht das Problem das doppelte Dateien überschrieben werden gelöst.

    Man könnte versuchen die Upload-Routine des Katalogs um eine Überprüfungsfunktion zu ergänzen. Diese Ergänzung wäre aber, wenn man sie selbst einarbeitet, nicht updatesicher.

    Gruß
    Stefan

    Kommentar

    • MacKP
      Contao-Yoda
      • 15.06.2009
      • 13315

      #3
      Zitat von AgentK Beitrag anzeigen
      Man könnte versuchen die Upload-Routine des Katalogs um eine Überprüfungsfunktion zu ergänzen. Diese Ergänzung wäre aber, wenn man sie selbst einarbeitet, nicht updatesicher.
      Na, wenn du sowas schreiben würdest und das im Ticket System einreichen würdest, glaube ich, das die Catalog Entwickler das übernehmen würden. Das hat bisher aber noch keiner gemacht. Es hat sich auch noch keiner gefunden, der das Finanziell unterstützen würde.. und die Entwickler selber haben das anscheinend noch nicht gebraucht...

      Es gibt viele Wege dafür zu sorgen, das es das irgendwann mal geben wird. Es hält euch keiner davon ab ;-)

      Viele Grüße
      Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
      [Arbeitet bei -> Paus Design & Medien]
      "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

      Kommentar

      • stupido
        Contao-Nutzer
        • 31.01.2012
        • 12

        #4
        Ich habe das Problem vorläufig durch einen kleinen Hack gelöst:

        Wenn man in der Datei ModuleCatalogEdit.php vor der Zeile

        $dummyFolder = new Folder($objWidget->uploadFolder);

        den folgenden Code einfügt, dann werden die Dateien jedes Katalogeintrages in einem eigenen Verzeichnis gespeichert:

        $recordId = $this->objDCEdit->activeRecord->id;
        $objWidget->uploadFolder = $objWidget->uploadFolder . '/' . $recordId;

        Damit wird verhindert, dass eine gleichnamige Datei eines anderen Eintrages unbewusst überschrieben wird. Besser als gar kein Schutz.

        Schön wäre jetzt noch, wenn beim Speichern die nicht mehr angehakten Dateien gelöscht würden, damit sich kein Datenmüll ansammelt. Hat jemand eine Idee, wie man das hinbekommen könnte?

        Kommentar

        • MacKP
          Contao-Yoda
          • 15.06.2009
          • 13315

          #5
          Hallo stupido,
          soweit ich weiß gibt es dafür auch ein Ticket -> http://www.contao-forge.org/projects...s?per_page=100
          Ich find das nur gerade nicht *g*
          Könntest du dich da bitte drann hängen mit deiner Lösung? Eventuell wird das ja auch erst mal so übernommen...

          Viele Grüße
          Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
          [Arbeitet bei -> Paus Design & Medien]
          "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

          Kommentar

          • mschindler
            Contao-Nutzer
            • 25.08.2011
            • 228

            #6
            Hallo stupido,
            danke für den Hinweis. Genau das habe ich noch gesucht.

            Viele Grüße

            Markus
            Offizieller Contao Premium Partner seit 2016
            codesache.de
            ---
            Mitglied der Contao Community Bayern
            Aktuelle Termine zur Contao Community Bayern: contao-bayern.de

            Kommentar

            Lädt...