2016-07-07 89 views
1

我想通過使用核心函數或FileRepository的前端將文件插入到TYPO3數據庫中,正好插入到sys_file表中。 在調查我見過一些解決方案,如,FAL插入到sys_file中TYPO3

$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()。我在這裏錯過了一些東西嗎?

+0

你有錯誤?什麼是問題? – sven

+0

我的意思是......我需要添加一個sys_file記錄,其中包含通過我的擴展的前端上傳的文件的數據。沒有任何錯誤..但正如代碼片段所示,StorageRepository中沒有addFile()。 –

+0

該片段有效。我昨天用過它。查看@mario的答案。 – sven

回答

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記錄。