FAL插入sys_file TYPO3

时间:2016-07-07 09:27:56

标签: file typo3 core

我正在尝试使用核心函数或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()。我在这里错过了什么吗?

2 个答案:

答案 0 :(得分: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 :(得分:0)

@mario谢谢。购买我实现我计划的方式。这就是我做的......

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记录。