/ / TYPO3: Como usar o upload de arquivos com o extbase? - typo3, extbase

TYPO3: Como usar o upload de arquivos com o extbase? - typo3, extbase

Eu estou construindo uma extensão simples baseada em extbase / fluid que tem um upload de formulário em um plugin frontend. Ele estava trabalhando no 6.0.4, mas agora eu recebo a seguinte exceção quando tento fazer o upload de um arquivo:

# 1297759968: Exceção enquanto mapeamento de propriedade no caminho da propriedade "fichier": Nenhum conversor encontrado que possa ser usado para converter de "array" para sequenciar".

O problema parece estar relacionado ao fato de queo pedido da web recebe uma matriz para o arquivo enviado, mas o modelo o armazena como um corda. Como posso me livrar dessa exceção? Como devo lidar com arquivo fazer upload no extbase?


A extensão foi iniciada usando Extension Builder. fichier é uma propriedade de string no Modelo, contendo o nome do arquivo carregado (localizado em uploads/tx_myext/). O modelo para o plugin contém um campo de upload criado a partir de um form.upload ViewHelper. No TYPO3 6.0.4, quando submeto o formulário, recebo um objeto como argumento para o createAction função. A partir desse objeto, eu chamo getFichier que me retorna a matriz de arquivos do arquivo enviado. Em seguida, posso extrair o nome do arquivo original, copiar o arquivo temporário para o local correto e definir o valor do arquivo. fichier propriedade usando o nome do arquivo original.

Agora, no TYPO3 6.1.0, eu recebo a exceção acima antes de entrar no createAction função. Meu convidado é que PropertyMapper está tentando traduzir a matriz de arquivos para uma cadeia de caracteres para coincidir com o tipo de fichier propriedade.

O que eu não sei é como funcionava antesfoi um bug, ou é assim que funciona agora que é o bug. E se realmente funciona da maneira que se destina a fazer, como devo ser capaz de lidar com o upload de arquivos em uma extensão extbase?

Respostas:

7 para resposta № 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