Actions
Bug #53622
closedUpdating the file content fails with the FAL API
Status:
Closed
Priority:
Should have
Assignee:
-
Category:
File Abstraction Layer (FAL)
Target version:
-
Start date:
2013-11-13
Due date:
% Done:
0%
Estimated time:
TYPO3 Version:
6.1
PHP Version:
Tags:
Complexity:
Is Regression:
No
Sprint Focus:
Description
Creating/Updating files with the FAL API fails because FAL want's to update a field sys_file.mimetype. But the field is called sys_file.mime_type in the database.
To reproduce:
/** @var \TYPO3\CMS\Core\Resource\StorageRepository $storageRepository */ $storageRepository = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\StorageRepository'); /** @var \TYPO3\CMS\Core\Resource\ResourceStorage $storage */ $storage = $storageRepository->findByUid(1); //Create a file (or get an existing one, that makes no difference): /** @var \TYPO3\CMS\Core\Resource\Folder $folder */ $folder = $storage->getFolder('/user_upload/'); $fileName = '123.txt'; $file = $storage->createFile($fileName, $folder); //A new record in sys_file is created and the file is created in the filesystem. //Update the file $fileContent = '12345filecontent'; $file->setContents($fileContent); //The file's content in the filesystem get's updated. But the mimetype changes and can not be updated in the database. //this one throws the same error: $storage->setFileContents($file, $fileContent);
The error:
exec_UPDATEquery caller: TYPO3\CMS\Core\Database\DatabaseConnection::exec_UPDATEquery ERROR: Unknown column 'mimetype' in 'field list' lastBuiltQuery: UPDATE sys_file SET mimetype='text/plain' WHERE uid=2071 debug_backtrace: include(ysext/extbase/Scripts/CommandLineLauncher.php),li_dispatch.phpsh#65 TYPO3\CMS\Extbase\Core\Bootstrap->run#32 TYPO3\CMS\Extbase\Core\Bootstrap->handleRequest#197 TYPO3\CMS\Extbase\Mvc\Cli\RequestHandler->handleRequest#208 TYPO3\CMS\Extbase\Mvc\Dispatcher->dispatch#96 TYPO3\CMS\Extbase\Mvc\Controller\CommandController->processRequest#100 TYPO3\CMS\Extbase\Mvc\Controller\CommandController->callCommandMethod#114 call_user_func_array#212 BGM\MyExt\Command\MyCommandController->createFileCommand# TYPO3\CMS\Core\Resource\File->setContents#84 TYPO3\CMS\Core\Resource\ResourceStorage->setFileContents#140 TYPO3\CMS\Core\Resource\FileRepository->update#952 TYPO3\CMS\Core\Database\DatabaseConnection->exec_UPDATEquery#263 TYPO3\CMS\Core\Database\DatabaseConnection->debug#247
The problem is $file->setContents which calls TYPO3\CMS\Core\Resource\FileRepository->update, but I have no idea how to fix this.
Actions