Anhänge lassen sich nach Migration nicht mehr herunterladen
Hi Community,
in den letzten Monaten haben wir nach einigen Umwegen unsere Contao-Installation von 2.11.17 auf 3.4.5 migriert. Auf beiden Versionen läuft Helpdesk in Version 1.3.0 stable.
Die alten Nachrichten wurden erfolgreich übertragen, neue Nachrichten lassen sich posten.
Das Problem sind jetzt die Anhänge der Forumsnachrichten. Die sind alle fein säuberlich in mehreren Unterordnern in tl_files/foren einsortiert. Nur leider lassen sie sich nicht mehr herunterladen. Contao meldet z.B. von der Adresse
Wenn ich nun z.B. die Datei 3178.1 aus dem Verzeichnis tl_files/foren/allgemein ins Rootverzeichnis verschiebe, wird sie problemlos heruntergeladen. Obwohl in der Tabelle tl_helpdesk_categories für alle Foren, in denen Anhänge zugelassen sind, im Feld atch_dir der korrekte Pfad steht, werden die Dateien offenbar dennoch im Rootverzeichnis gesucht.
Nun gibt es im Backend ja unter den Forumseinstellungen die Option "Anhänge aktivieren". Wenn die aktiviert sind, erscheint ein Button "Auswahl ändern", um das Verzeichnis für die Anhänge zu selektieren. Soweit so gut. Nur leider wird die Auswahl nicht gespeichert! Wenn das man kein Bug ist?
Nun könnte man das Problem lösen, indem man alle Dateien aus den Unterordnern von tl_files/foren ins Rootverzeichnis verschiebt. Dann funktioniert der Download wieder. Die schöne Ordnung ist danach allerdings perdu.
Hat jemand eine Idee, wie ich das lösen könnte?
Viele Grüße,
Lutz
Liste der Anhänge anzeigen (Anzahl: 1)
Hmmm... An der Migration waren mehrere Leute beteiligt. Deshalb weiß ich auch nicht, welches Repository verwandt wurde. Ich versuche jetzt, etwas Licht ins Chaos zu bringen.
Die neue Site läuft unter Contao 3.4.5. Wenn ich im Backend in der Dateiverwaltung auf 'Synchronisieren' klicke, passiert erst mal eine Weile nichts und dann kommt ein 500er Server-Error. Dennoch scheint es zu einer Synchronisation der Dateien im Ordner tl_files mit der DB-Tabelle tl_files gekommen zu sein. Jedenfalls finden sich in der Datenbank auch die neu hinzugefügten Anhänge. Merkwürdigerweise allerdings auch Dateien, die nicht mehr im Dateisystem vorhanden sind.
Beispiel:
Anhang 16983
Die Datei 3176.1 ist im Dateisystem nur 1x im Ordner tl_files/helpdesk vorhanden, erscheint in der DB-Tabelle aber an 2 unterschiedlichen Orten.
Wenn ich im Modul HelpdeskDownload.php die Zeile
PHP-Code:
$path = TL_ROOT.'/'.\FilesModel::findByPk($q->cat_atch_dir)->path.'/';
reaktiviere, bekomme ich wieder wie gehabt die Fehlermeldung
Zitat:
File not found (/kunden/465037_30627/webseiten/cms/3_2//3176.1).
Der Workaround (die alte Routine?) findet die Datei:
PHP-Code:
$parts = explode('/',str_replace('\\', '/', $q->cat_atch_dir));
$path = TL_ROOT.'/';
foreach ($parts as $part) if (strlen($part)) $path .= $part.'/';
Das ist es was ich nicht verstehe: Da ja offenbar die aktuelle Version meines Contao das Datenbank-Filesystem unterstützt, müsste wie du sagst, FilesModel::findByPk die Datei finden, zumal sie ja korrekt in der Datenbank abgelegt ist. Tut sie aber nicht. Im übrigen gibt es auch noch einen Ordner /files im Rootverzeichnis Server. Der scheint aber im Gegensatz zu dem von mir verwandten Ordner /tl_files nicht mit der DB synchronisiert zu werden.
Viele Grüße,
Lutz