+49 151 42 43 20 92 info@nevafay.de

Kurze Überblick von Abfragen und Funktion FAL betreffend:

Falls der Dateiname wie folgt zurückgegeben wird „file:123456“, so kann die nachfolgende Funktion den vollständigen Dateinamen zurück liefern.

public function getFile ( $imageId )
{
  $imageId = str_replace('file:','',$imageId);
  $q = 'SELECT identifier,storage FROM sys_file WHERE uid = '.$imageId.' LIMIT 1';
  $res = $GLOBALS['TYPO3_DB']->sql_query($q);
  if ( $res && $GLOBALS['TYPO3_DB']->sql_num_rows($res) > 0 )
  {
    $row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);
    $identifier = $row['identifier'];
    $storageUid = $row['storage'];
    $storageRepository = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\StorageRepository');
    $storageObj = $storageRepository->findByUid($storageUid);
    $storageConfig = $storageObj->getConfiguration();
    $basePath = $storageConfig['basePath'];
    $file = $basePath.$identifier;
    $file = str_replace('//','/',$file);
    #$file = $storageObj->getFile($identifier);
    return $file;
  }
  return false;
}

Zu einem Datensatz gehörige Datei auslesen:

public function getFilename ( $uid_foreign, $tablenames, $fieldname, $pid )
{
  $files = array();
  $fileRepository = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\FileRepository');
  $fileObjects = $fileRepository->findByRelation($tablenames,$fieldname,$uid_foreign);
  if ( count($fileObjects) > 0 )
  {
    foreach ($fileObjects as $key => $fileObject )
    {
      #$files[$key]['reference'] = $fileObject->getReferenceProperties();
      #$files[$key]['original']  = $fileObject->getOriginalFile()->getProperties();
      $files[$key]['filename']  = $fileObject->getPublicUrl();
    }
  }
  return $files;
}