TYPO3:如何使用extbase文件上传?

时间:2013-05-06 19:38:58

标签: typo3 extbase

我正在建立一个基于extbase / fluid的简单扩展,它有一个 在前端插件中上传表单。它在6.0.4中工作,但现在我得到了 我尝试上传文件时出现以下异常:

  

#1297759968:在属性路径“fichier”的属性映射时出现异常:找不到可用于从“数组”转换的转换器   “字符串”。

问题似乎与网络请求有关 接收上传文件的数组,但模型将其存储为 串。我怎样摆脱这个例外?我应该如何处理文件 在extbase上传?


使用Extension Builder启动了扩展程序。 fichier是模型中的字符串属性,包含上载文件的名称(位于uploads/tx_myext/中)。该插件的模板包含来自form.upload ViewHelper的上传字段构建。在TYPO3 6.0.4上,当我提交表单时,我收到一个对象作为createAction函数的参数。从该对象,我调用getFichier,返回上传文件的文件数组。然后,我可以提取原始文件名,将临时文件复制到正确的位置,并使用原始文件名设置fichier属性的值。

现在,在TYPO3 6.1.0中,我在进入createAction函数之前得到了上述异常。我的客人是PropertyMapper正在尝试将文件数组转换为字符串以匹配fichier属性的类型。

我不知道的是它之前的工作方式是一个错误,还是它现在的工作方式就是错误。如果它真的按照预期的方式工作,我应该如何处理extbase扩展中的文件上传?

1 个答案:

答案 0 :(得分:7)

 /**
 * initialize actions
 */
public function initializeAction() {
    if ($this->arguments->hasArgument('myModel')) {
        $this->arguments->getArgument('myModel')->getPropertyMappingConfiguration()->setTargetTypeForSubProperty('upload', 'array');
    }
}

http://www.typo3lexikon.de/typo3-tutorials/extensions/extbase/property-mapper.html