3

フロントエンド プラグインにアップロード フォームがある extbase / fluid に基づく単純な拡張機能を構築しています。6.0.4 では機能していましたが、ファイルをアップロードしようとすると次の例外が発生します。

#1297759968: プロパティ パス "fichier" でのプロパティ マッピング中の例外: "配列" から "文字列" への変換に使用できるコンバーターが見つかりません。

この問題は、Web リクエストがアップロードされたファイルの配列を受け取るという事実に関連しているようですが、モデルはそれを文字列として保存します。この例外を取り除くにはどうすればよいですか? 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 拡張機能でファイルのアップロードをどのように処理できるのでしょうか?

4

1 に答える 1

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

于 2013-05-07T08:40:09.330 に答える