【问题标题】:TYPO3 FAL upload frontend add title, alternative and descriptionTYPO3 FAL 上传前端添加标题、替代和描述
【发布时间】:2017-04-03 07:47:39
【问题描述】:

我有一个扩展程序,用户可以在其中将一些图像上传到他们的前端配置文件。图片上传和保存到用户配置文件工作正常,我使用以下代码 - 但是是否有一种简单的方法来添加标题、替代和描述?

感谢您的帮助! 马丁

/** @var \TYPO3\CMS\Core\Resource\StorageRepository $storageRepository */
        $storageRepository = $this->objectManager->get('TYPO3\CMS\Core\Resource\StorageRepository');
        /** @var \TYPO3\CMS\Core\Resource\ResourceStorage $storage */
        $storage = $storageRepository->findByUid('1');

        #$storageRepository = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\StorageRepository');
        #$storage           = $storageRepository->findByUid(1); # Fileadmin = 1
        #$saveFolder        = $storage->getFolder($this->settings['uploadFolder']);

        $fileData = array();
        $fileData['name'] = $_FILES['tx_key_datenwartung']['name']['logo'][0];
        $fileData['type'] = $_FILES['tx_key_datenwartung']['type']['logo'][0];
        $fileData['tmp_name'] = $_FILES['tx_key_datenwartung']['tmp_name']['logo'][0];
        $fileData['size'] = $_FILES['tx_key_datenwartung']['size']['logo'][0];


        // this will already handle the moving of the file to the storage:
        $newFileObject = $storage->addFile(
                $fileData['tmp_name'], $saveFolder, $userUid.'_'.$fileData['name']
        );
        $newFileObject = $storage->getFile($newFileObject->getIdentifier());
        #$newFile = $this->fileRepository->findByUid($newFileObject->getProperty('uid'));

        $newFile = $newFileObject->getUid();

        $persistenceManager = $this->objectManager->get('TYPO3\CMS\Extbase\Persistence\Generic\PersistenceManager');
        $persistenceManager->persistAll();

        /** @var \Vendor\Myextension\Domain\Model\FileReference $newFileReference */
        $newFileReference = $this->objectManager->get('Ven\Key\Domain\Model\FileReference');
        $newFileReference->setFile($newFile);


        $user->addLogo($newFileReference);

【问题讨论】:

  • 旁注: $fileData['type'] 是用户提交的数据。您应该验证有关它的 mime 类型的文件内容并检查它是否完全允许。否则,您的用户可能会上传可执行文件(PHP、Perl 等)来劫持系统。

标签: upload typo3 extbase fal


【解决方案1】:

....可以自己解决。只需将 setter 添加到模型并添加文本:

/**
 * Set alternative
 *
 * @param \xx\yy\Domain\Model\File $file
 */
public function setAlternative($alternative) {
    $this->alternative = $alternative;
}
和控制器:

$newFileReference->setAlternative('你的图片替代文本');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-15
    • 1970-01-01
    • 1970-01-01
    • 2015-09-17
    • 2012-11-16
    相关资源
    最近更新 更多