FAL 插入 sys_file TYPO3

问题描述 投票:0回答:2

我正在尝试使用核心函数或 FileRepository 通过前端将文件插入 TYPO3 数据库,恰好插入到 sys_file 表中。 在调查过程中,我看到了一些解决方案,例如,

$storageRepository = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\StorageRepository');
$storage = $storageRepository->findByUid(1);

$fileObject = $storage->addFile('/tmp/myfile', $storage->getRootLevelFolder(), 'newFile');
echo $fileObject->getIdentifier(); // Should output "/newFile"

但是我在storageRepository类中仍然找不到这个

addFile()
。我在这里错过了什么吗?

file typo3
2个回答
2
投票

$storageRepository->findByUid(1)
使用方法
ResourceStorage
返回一个
addFile()
对象。

这是该类的文档。 https://typo3.org/api/typo3cms/class_t_y_p_o3_1_1_c_m_s_1_1_core_1_1_resource_1_1_resource_storage.html


-1
投票

@马里奥谢谢。顺便说一句,我已经实现了我的计划。这就是我所做的..

public function uploadFile($uploadedfile) {

    $storage = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\StorageRepository');

    $filePath = 'uploads/tx_fileupload/'.$uploadedfile['updata']['name'];
    $title = $uploadedfile['updata']['name'];
    $size = $uploadedfile['updata']['size'];
    
    // Moving the physical file to destined folder
    \TYPO3\CMS\Core\Utility\GeneralUtility::upload_copy_move($uploadedfile['updata']['tmp_name'],$filePath);

    // Adding a record in sys_file_storage
    $fileObject = $storage->createLocalStorage($uploadedfile['updata']['name'],$uploadedfile['updata']['tmp_name'],$filePath,'');

    // Inserting file in sys_file
    $repositoryFileObject = \TYPO3\CMS\Core\Resource\ResourceFactory::getInstance()->retrieveFileOrFolderObject($filePath);

    return $repositoryFileObject;
}

现在开始添加相应的

sys_file_reference
记录。

© www.soinside.com 2019 - 2024. All rights reserved.