Ergebnis 1 bis 3 von 3

Thema: DCA FileTree BLOB aus Datenbank lesen

  1. #1
    Contao-Nutzer
    Registriert seit
    07.12.2018.
    Beiträge
    14

    Standard DCA FileTree BLOB aus Datenbank lesen

    Hallo zusammen,

    ich kämpfe gerade ziemlich mit dem FileTree und dem sich dahinter verborgenen BLOB Eintrag in der Datenbank.
    Ich versteh leider nicht wie ich denn so ein BLOB Eintrag, nachdem er einmal in der DB war, wieder auseinander pflücken kann um ihn für den FileTree aufzubereiten und die ausgewählten Files anzuzeigen.

    Im Moment möchte ich folgendes machen:

    DCA:
    PHP-Code:
            'attachments' => [
                
    'label' => &$GLOBALS['TL_LANG']['tl_activity']['attachments'],
                
    'inputType' => 'fileTree',
                
    'eval' => ['multiple' => true'fieldType' => 'checkbox''files' => true'filesOnly' => true],
                
    'load_callback' => [['myclass.dca.tl_activity''attachments']],
            ], 
    Class:
    PHP-Code:
        public function attachments($value, \Contao\DataContainer $dc)
        {
            
    // hole mir das BLOB aus einer anderen Tabelle als diese
            // gib das BLOB als default Werte zurück
           
    $myBlob AUS_DATENBANK

           dump
    (stream_get_contents($myBlob));  // liefert:  b"a:2:{i:0;s:16:"*?ì±8]\x11Ú£=\x02B¼\x17\x00\x03";i:1;s:16:"F$ãó8]\x11Ú£=\x02B¼\x17\x00\x03";}"

           
    dump(\Contao\StringUtil::deserialize(stream_get_contents($attachments))); // lifert - nicht - ''

           
    return $myBlob;
        } 
    Das
    PHP-Code:
    b"a:2:{i:0;s:16:"*?ì±8]\x11Ú£=\x02B¼\x17\x00\x03";i:1;s:16:"F$ãó8]\x11Ú£=\x02B¼\x17\x00\x03";}" 
    sieht für mich aus wie ein binary String welcher ein array aus binUUIDS enthält.

    Wie verarbeite ich denn das Blob aus der DB weiter bzw. kann es für den FileTree aufbereiten?

    Vielen lieben Dank für eure Hilfe!

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.063
    Partner-ID
    10107

    Standard

    Das ist einfach nur ein serialisiertes Array aus UUIDs.
    PHP-Code:
    $uuids = \Contao\StringUtil::deserialize($valuetrue);

    foreach (
    $uuids as $uuid) {
        
    $file = \Contao\FilesModel::findByUuid($uuid);


  3. #3
    Contao-Nutzer
    Registriert seit
    07.12.2018.
    Beiträge
    14

    Standard

    Besten Dank für die schnelle Antwort.

    Das 2. Argument 'true' hat mir zu meinem Glück gefehlt.

    PHP-Code:
    \Contao\StringUtil::deserialize($valuetrue); 
    Dankeschön!

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
  •