[Frage] Error beim Versuch eine bestimmte Datei im Frontend darzustellen TYPO3-Version: 7.6.9

  • 0 x
    16 Beiträge
    0 Hilfreiche Beiträge
    20. 01. 2017, 13:04

    Hallo, ich möchte auf einer Unterseite kleinere MP3s (2-3MB jeweils) anbieten. Das habe ich über das Media Element gemacht. Dadurch werden die MP3s im Frontend über den HTML5 Player ausgegeben.

    Das klappt soweit ganz gut, bis auf bei einer Datei. Wenn ich die Datei hochlade und sichtbar für den User im Frontend mache, kommt folgender Fehler:

    #1: PHP Warning: trim() expects parameter 1 to be string, object given in ... typo3/sysext/core/Classes/TypoScript/TemplateService.php line 1318

    In der Datei mit der jeweiligen Zeile steht:

    1. $file = trim($fileFromSetup);

    Gesamt:

    1. public function getFileName($fileFromSetup)
    2. {
    3. $file = trim($fileFromSetup);
    4. if (!$file) {
    5. return null;
    6. } elseif (strpos($file, '../') !== false) {
    7. if ($this->tt_track) {
    8. $this->getTimeTracker()->setTSlogMessage('File path "' . $file . '" contained illegal string "../"!', 3);
    9. }
    10. return null;
    11. }
    12. // Cache
    13. $hash = md5($file);
    14. if (isset($this->fileCache[$hash])) {
    15. return $this->fileCache[$hash];
    16. }
    17.  
    18. // if this is an URL, it can be returned directly
    19. $urlScheme = parse_url($file, PHP_URL_SCHEME);
    20. if ($urlScheme === 'https' || $urlScheme === 'http' || is_file(PATH_site . $file)) {
    21. return $file;
    22. }
    23.  
    24. // this call also resolves EXT:myext/ files
    25. $file = GeneralUtility::getFileAbsFileName($file);
    26. if (!$file) {
    27. if ($this->tt_track) {
    28. $this->getTimeTracker()->setTSlogMessage('File "' . $fileFromSetup . '" was not found!', 3);
    29. }
    30. return null;
    31. }
    32.  
    33. $file = PathUtility::stripPathSitePrefix($file);
    34.  
    35. // Check if the found file is in the allowed paths
    36. foreach ($this->allowedPaths as $val) {
    37. if (GeneralUtility::isFirstPartOfStr($file, $val)) {
    38. $this->fileCache[$hash] = $file;
    39. return $file;
    40. }
    41. }
    42.  
    43. if ($this->tt_track) {
    44. $this->getTimeTracker()->setTSlogMessage('"' . $file . '" was not located in the allowed paths: (' . implode(',', $this->allowedPaths) . ')', 3);
    45. }
    46. return null;
    47. }

    Ist wie gesagt nur bei der einen Datei der Fall... Die Datei hat in dem Namen keine Umlaute. Ich hab die Datei auch schon in file.mp3 umbenannt, hat nicht geholfen.
    In den Eigenschaften der Datei (Künstlername etc) waren Umlaute, ich hab die Informationen einfach mal entfernt und die Datei konvertiert, neu hochgeladen - hat alles nicht geholfen.

    Woran könnte das liegen?


  • 1
  • toifel toifel
    Jedi-Ratsmitglied
    0 x
    831 Beiträge
    96 Hilfreiche Beiträge
    20. 01. 2017, 13:50

    Wenn du schon im code unterwegs bist, dann lass dir dort mal das fehlerhafte Objekt ausgeben. Vielleicht ist dann ersichtlich, warum $fileFromSetup ein Objekt ist, und nicht wie erwartet ein String.

    1. \TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($fileFromSetup);
    2. $file = trim($fileFromSetup);

  • 0 x
    16 Beiträge
    0 Hilfreiche Beiträge
    20. 01. 2017, 14:23

    Hat sich erledigt... Ich habe die Datei jetzt nochmal von MP3 in WAV konvertiert und von WAV in MP3 und nun funktioniert es.

  • 1