Ich bin mir nicht sicher ob ich hier den richtigen Lösungsansatz verfolge, jedenfalls versuche ich in einer Hook (processFormData) hochgeladene Files mittels Dbafs::moveResource zu verschieben.
Der Code sieht wie folgt aus:
PHP-Code:
public function onProcessFormData($arrPost, $arrForm, $arrFiles)
{
// move uploaded user files
$targetPath = "files/content/documents/xy/";
$uuids = \Contao\StringUtil::deserialize($arrPost['file_upload'], true);
foreach ($uuids as $uuid) {
$file = \Contao\FilesModel::findByUuid($uuid);
$movedFile = \Contao\Dbafs::moveResource($file->path, $targetPath.$file->name);
$needsSync = \Contao\Dbafs::shouldBeSynchronized($movedFile->path);
}
}
Die Methode moveResource liefert auch das passende Objekt zurück und in der tl_files Tabelle finde ich auch den entsprechenden Eintrag.
Sehe ich mir jedoch im Backend die Dateiverwaltung an, so finde ich die verschobene Datei nicht im entsprechenden Ordner. shouldBeSynchronized gibt auch ein true zurück.
Wo liegt mein Denkfehler? Wird die Datei durch moveResource nicht wirklich verschoben?
Lesezeichen