Ergebnis 1 bis 5 von 5

Thema: Datei wird nicht in DB gespeichert

  1. #1
    Contao-Nutzer
    Registriert seit
    16.01.2012.
    Beiträge
    65

    Standard Datei wird nicht in DB gespeichert

    Hallo zusammen,

    ich habe in der contao-Datenbank eine Tabelle, die unter anderem dieses Feld beinhaltet:
    Code:
    `attachment1` blob NULL
    In einem Formular habe ich eingestellt, dass die Formulardaten in der Datenbank gespeichert sind. Es gibt ein Feld vom Typ "Datei-Upload" mit dem Namen
    attachment1

    Jedoch wird die ausgewählte Datei nicht in der Datenbank gespeichert (das Feld wird NULL), ein Datensatz wird aber erzeugt und die anderen Werte eingefügt.

    Was mache ich falsch bzw. was habe ich übersehen?
    Wenn ihr weitere Infos braucht, sagt bescheid.


    Gruß

    alt-mich

  2. #2
    Contao-Nutzer
    Registriert seit
    01.11.2012.
    Ort
    Kiel
    Beiträge
    109

    Standard

    Moin alt-mich,

    hast du in dem Formular den Punkt "Formulardaten speichern" oder den Punkt "(EFG) Formular-Daten speichern" aktiviert?
    Ich tippe mal auf Ersteres, da EFG die Formulardaten in seine eigene Tabellen tl_formdata und tl_formdata_details speichert.

    Das normale Contao-Formular scheint nur dann die per Datei-Upload übertragenen Dateien in der Datenbank zu speichern, wenn im Datei-Upload-Feld die Option "Hochgeladene Dateien speichern" aktiviert ist. Das hat bei mir zumindest ein schneller Check mit Contao2Go und Contao 2.11.5 ergeben. Ohne diese Option wird ein leeres BLOB (0 Bytes) in die Tabelle geschrieben. Mit aktivierter Option wird das BLOB korrekt erstellt , aber man hat die Datei dann noch zusätzlich im Dateisystem liegen. Scheint mir nicht der Weisheit letzter Schluss zu sein.

    EDIT: da habe ich mich vertan. Während das hochgeladene Testbild fast 2kB gross ist, werden in das BLOB gerade einmal 29 Byte geschrieben - nämlich der Pfad zum hochgeladenen Bild als String.
    Geändert von MartinG (17.12.2012 um 12:32 Uhr)

  3. #3
    Contao-Nutzer
    Registriert seit
    16.01.2012.
    Beiträge
    65

    Standard

    Danke MartinG, du hattest Recht: Ich hatte die CheckBox bei EFG angehakt.

    Mich würde an dieser Stelle nur interessieren, wie man es am besten macht - die Dateien in die Datenbank direkt schreiben (DB kann sich mitunter ganz schön aufblähen)?
    Oder nur ein Pfad auf die Datei im Dateisystem (evtl. Dateninkonsistenz)?

  4. #4
    Contao-Nutzer
    Registriert seit
    01.11.2012.
    Ort
    Kiel
    Beiträge
    109

    Standard

    Prinzipiell würde ich Dateien nicht in der Datenbank speichern, wenn es nicht unbedingt nötig ist. Wie du schon sagst, bläht sich die Datenbank dadurch schnell auf.

    Zum Thema Dateninkonsistenz habe ich gelesen, dass Contao ab Version 3 die Dateien im Dateisystem mit Informationen in der Datenbank synchronisiert. Ich weiss aber nicht, inwieweit dass auch bei den Dateien der Fall ist, die mit einem Formular hochgeladen wurden. Das müsstest du testen, oder vielleicht kann es uns ein geneigter Leser sagen, der Contao 3 und Formulare mit Datei-Upload nutzt.

  5. #5
    Contao-Nutzer
    Registriert seit
    16.01.2012.
    Beiträge
    65

    Standard

    Hi,

    du hast (mal wieder) Recht, MartinG.
    Ich habe gerade contao 3.0.1 installiert, es gibt den Punkt "Synchronisieren" in der Dateiverwaltung:
    synchronize.png
    Die Funktion habe ich eben nicht getestet, aber man kann wohl davon ausgehen, dass es funktioniert :-)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •