[Frage] "File is missing!" bei Frontend upload [Gelöst] TYPO3-Version: 7.6.22

  • 0 x
    97 Beiträge
    3 Hilfreiche Beiträge
    15. 11. 2017, 11:38

    Hallo,
    Habe es jetzt endlich geschafft, dass Nutzer ein Profilbild hochladen können.
    Dies wird bei Upload in einen Ordner geschoben, welcher von Resize images automatically überwacht wird, somit wird das Bild auch nicht so groß.
    Die Datei wird bei Upload umbenannt in image.* es sind nur 5Bildtyspen erlaubt, somit sind im Ordner maximal 5 Dateien. Der Ordner ist fileadmin/Image/username
    Soweit so gut.
    Wenn ich jetzt im Backend von Typo3 mit den Nutzer anschaue, steht bei Image das richtige Bild.
    Nur darunter: File is missing! uploads/pics//user0/image.gif
    Wo der Doppelte / herkommt weiß ich, das ist aber nicht das Problem.
    Wollte jetzt die Bilder in uploads schieben, leider komme ich aber nur an fileadmin, und da ist der Ordner "uploads" nicht drin. Wie kann ich Typo jetzt sagen, es soll doch bitte im Ordner fileadmin/Image/username nach den Bildern suchen?
    Oder
    Wie komme ich mit $storage = $storageRepository->findByUid('1'); //this is the fileadmin storage
    An den Ordner uploads? Hab in der DB nachgesehen, es gibt dort nur die eine Uid, und die verweist auf fileadmin.

    1. public function saveFormAction() {
    2. $user = $this->userRepository->findByUid($GLOBALS['TSFE']->fe_user->user['uid']);
    3. $newPDFPath = 'Image/'.$GLOBALS['TSFE']->fe_user->user['username'].'/';
    4. if ($_FILES['tx_usercontrol_user_control_userhome']['name']['formimg'][0]) {
    5. $tmpName = $_FILES['tx_usercontrol_user_control_userhome']['name']['formimg'][0];
    6. $tmpFile = $_FILES['tx_usercontrol_user_control_userhome']['tmp_name']['formimg'][0];
    7. //$filetype = $_FILES['tx_usercontrol_user_control_userhome']['type']['formimg'][0];
    8.  
    9. $storageRepository = $this->objectManager->get('TYPO3\\CMS\\Core\\Resource\\StorageRepository');
    10. $storage = $storageRepository->findByUid('1'); //this is the fileadmin storage
    11. //build the new storage folder
    12. if(!$storage->hasFolder($newPDFPath)){
    13. $targetFolder = $storage->createFolder($newPDFPath);
    14. }
    15. else {
    16. $targetFolder = $storage->getFolder($newPDFPath);
    17. }
    18. $pos = strripos($tmpName, '.');;
    19. $newFileName = 'image'.substr($tmpName,$pos);
    20. if(($this->checkMimeType(substr($tmpName,$pos+1), $tmpFile))){
    21. $movedNewFile = $storage->addFile($tmpFile, $targetFolder, $newFileName, \TYPO3\CMS\Core\Resource\DuplicationBehavior::REPLACE);
    22. $user->setImage('/'.$GLOBALS['TSFE']->fe_user->user['username'].'/'.$newFileName);
    23. $this->userRepository->update($user);
    24. $this->redirect('list', NULL, NULL, array('uid'=>$GLOBALS['TSFE']->fe_user->user['uid']));
    25. }
    26. }

    Schon mal Danke für eine Antwort
    Mfg
    Power-Poler

  • 0 x
    97 Beiträge
    3 Hilfreiche Beiträge
    15. 11. 2017, 15:24 - Lösung

    Habs gefunden
    https://www.typo3.net/forum/thematik/zeige/thema/120197/

    Habe es über die Globals Variable die ganze Zeit versucht, aber ['columns'] vergessen.
    Das Ergebnis: die sys_log Tabelle hat sich mit 10000 Einträgen gefüllt (warum auch immer), und Apache lies mich nicht mehr in den Log Ordner im Backend (Speicher erschöpft)
    Nunja
    In der Datei Configuration\TCA\Overrides\fe_users.php die folgende Zeile angehängt:
    $GLOBALS['TCA']['fe_users']['columns']['image']['config']['uploadfolder'] = 'fileadmin/Image';

    Und schon ist der Pfad umgebogen.
    Bzw. erst die Extension entfernen und wieder einbinden.


  • 1
  • 0 x
    97 Beiträge
    3 Hilfreiche Beiträge
    15. 11. 2017, 15:24

    Habs gefunden
    https://www.typo3.net/forum/thematik/zeige/thema/120197/

    Habe es über die Globals Variable die ganze Zeit versucht, aber ['columns'] vergessen.
    Das Ergebnis: die sys_log Tabelle hat sich mit 10000 Einträgen gefüllt (warum auch immer), und Apache lies mich nicht mehr in den Log Ordner im Backend (Speicher erschöpft)
    Nunja
    In der Datei Configuration\TCA\Overrides\fe_users.php die folgende Zeile angehängt:
    $GLOBALS['TCA']['fe_users']['columns']['image']['config']['uploadfolder'] = 'fileadmin/Image';

    Und schon ist der Pfad umgebogen.
    Bzw. erst die Extension entfernen und wieder einbinden.

  • 1