TYPO3 Extbase 扩展:后端 FAL 上传失败
TYPO3 Extbase extension: Backend FAL Upload fails
我已经在 TYPO3 6.2.11 中使用当前 extension_builder 设置了一个扩展。
FAL 后台上传文件失败
extension_builder说extbase根本没有实现文件上传,但据我了解(cf https://github.com/helhum/upload_example),这是关于FE上传的。正确的?
我只需要完全定期上传 BE 文件 - select 通过 "Create new relation" 或 "Select & upload files".
直接上传失败,"Upload failed! A file with "*“需要扩展名!” (或我在 TCA 中指定的任何扩展名)。
引用创建有效,但保存后引用丢失。
此屏幕截图显示了保存前的两次尝试。
保存后再次清空:
如何进行这项工作?我是否必须向存储库添加额外的代码才能保存关系?或者可能缺少基本设置?
对于 tt_content,FAL 关系和上传工作正常。
并且:作为解决方法,是否可以使用常规 "Pibase" 'type' => 'group','internal_type' => 'file'
字段?但是模型中的 getter 和 setter 会是什么样子呢?就像一个普通的字符串?
TCA:
'apprenticeship_document' => array(
'exclude' => 1,
'label' => 'LLL:EXT:stellen/Resources/Private/Language/locallang_db.xlf:tx_stellen_domain_model_institution.apprenticeship_document',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'apprenticeshipDocument',
array('maxitems' => 1),
'*'
),
),
模型由 extension_builder 创建:
/**
* apprenticeshipDocument
*
* @var \TYPO3\CMS\Extbase\Domain\Model\FileReference
*/
protected $apprenticeshipDocument = NULL;
/**
* Returns the apprenticeshipDocument
*
* @return \TYPO3\CMS\Extbase\Domain\Model\FileReference $apprenticeshipDocument
*/
public function getApprenticeshipDocument() {
return $this->apprenticeshipDocument;
}
/**
* Sets the apprenticeshipDocument
*
* @param \TYPO3\CMS\Extbase\Domain\Model\FileReference $apprenticeshipDocument
* @return void
*/
public function setApprenticeshipDocument(\TYPO3\CMS\Extbase\Domain\Model\FileReference $apprenticeshipDocument) {
$this->apprenticeshipDocument = $apprenticeshipDocument;
}
我也尝试过使用 \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\FileReference>
而不是 \TYPO3\CMS\Extbase\Domain\Model\FileReference $apprenticeshipDocument
,但这也没有什么区别。
你的TCA定义有误,getFileFieldTCAConfig
的第一个参数应该是小下划线,而不是小驼峰式:
'apprenticeship_document' => array(
'exclude' => 1,
'label' => 'LLL:EXT:stellen/Resources/Private/Language/locallang_db.xlf:tx_stellen_domain_model_institution.apprenticeship_document',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'apprenticeship_document',
array('maxitems' => 1),
'pdf,doc,docx'
),
),
除此之外,“*”不是有效的文件扩展名。您需要定义一个以逗号分隔的文件扩展名列表(例如 'doc,docx,pdf'
)。通过阅读文档,文件扩展名没有通配符。
FE 中的文件上传未在 Extension Builder 中实现,但通过 Helmut Hummel 提供的解决方案完全可以实现。
我已经在 TYPO3 6.2.11 中使用当前 extension_builder 设置了一个扩展。 FAL 后台上传文件失败
extension_builder说extbase根本没有实现文件上传,但据我了解(cf https://github.com/helhum/upload_example),这是关于FE上传的。正确的?
我只需要完全定期上传 BE 文件 - select 通过 "Create new relation" 或 "Select & upload files".
直接上传失败,"Upload failed! A file with "*“需要扩展名!” (或我在 TCA 中指定的任何扩展名)。
引用创建有效,但保存后引用丢失。
此屏幕截图显示了保存前的两次尝试。
保存后再次清空:
如何进行这项工作?我是否必须向存储库添加额外的代码才能保存关系?或者可能缺少基本设置?
对于 tt_content,FAL 关系和上传工作正常。
并且:作为解决方法,是否可以使用常规 "Pibase" 'type' => 'group','internal_type' => 'file'
字段?但是模型中的 getter 和 setter 会是什么样子呢?就像一个普通的字符串?
TCA:
'apprenticeship_document' => array(
'exclude' => 1,
'label' => 'LLL:EXT:stellen/Resources/Private/Language/locallang_db.xlf:tx_stellen_domain_model_institution.apprenticeship_document',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'apprenticeshipDocument',
array('maxitems' => 1),
'*'
),
),
模型由 extension_builder 创建:
/**
* apprenticeshipDocument
*
* @var \TYPO3\CMS\Extbase\Domain\Model\FileReference
*/
protected $apprenticeshipDocument = NULL;
/**
* Returns the apprenticeshipDocument
*
* @return \TYPO3\CMS\Extbase\Domain\Model\FileReference $apprenticeshipDocument
*/
public function getApprenticeshipDocument() {
return $this->apprenticeshipDocument;
}
/**
* Sets the apprenticeshipDocument
*
* @param \TYPO3\CMS\Extbase\Domain\Model\FileReference $apprenticeshipDocument
* @return void
*/
public function setApprenticeshipDocument(\TYPO3\CMS\Extbase\Domain\Model\FileReference $apprenticeshipDocument) {
$this->apprenticeshipDocument = $apprenticeshipDocument;
}
我也尝试过使用 \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\FileReference>
而不是 \TYPO3\CMS\Extbase\Domain\Model\FileReference $apprenticeshipDocument
,但这也没有什么区别。
你的TCA定义有误,getFileFieldTCAConfig
的第一个参数应该是小下划线,而不是小驼峰式:
'apprenticeship_document' => array(
'exclude' => 1,
'label' => 'LLL:EXT:stellen/Resources/Private/Language/locallang_db.xlf:tx_stellen_domain_model_institution.apprenticeship_document',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'apprenticeship_document',
array('maxitems' => 1),
'pdf,doc,docx'
),
),
除此之外,“*”不是有效的文件扩展名。您需要定义一个以逗号分隔的文件扩展名列表(例如 'doc,docx,pdf'
)。通过阅读文档,文件扩展名没有通配符。
FE 中的文件上传未在 Extension Builder 中实现,但通过 Helmut Hummel 提供的解决方案完全可以实现。