【问题标题】:TYPO3: How to use file upload with extbase?TYPO3:如何使用 extbase 上传文件?
【发布时间】:2013-04-30 15:13:39
【问题描述】:

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

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

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


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

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

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

【问题讨论】:

  • 您需要提供更多详细信息
  • 我添加了一些细节。现在清楚了吗?

标签: typo3 extbase


【解决方案1】:
 /**
 * 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

【讨论】:

  • 可能值得指出的是,控制器的每个动作都会调用initializeAction,而myModel 指的是赋予createAction() 函数的变量的名称。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-09
  • 2013-11-02
  • 2012-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多