5

複数ファイル フィールドを持つフォームを作成しようとしています。ドキュメントはかなりあいまいなので:

W3C FileReader API (以下のドキュメントの URL に基づく) を使用して、クライアントからのファイルを処理し、ビューからエンティティへの基になるデータを管理することにしました。現在、ドラッグ アンド ドロップ、メタデータ、およびクライアントでの複数選択をサポートしています。

しかし、UploadedFile オブジェクトにもう一度チャンスを与えたいのですが、主な問題は、エンティティ (FileUploadタイプ) のファイル プロパティを作成して複数のファイル データを格納できないことです。私の入力は次のようになります。

<input type="file" id="upload_files" name="upload[files][]" required="required" multiple="multiple" />

理論的には、名前を配列にした場合、fileUpload にはファイルが含まれているはずですが、含まれていません。UploadedFile オブジェクトに複数のファイル データを保存できますか? またはただのシングル?

http://api.symfony.com/2.2/Symfony/Component/HttpFoundation/File/UploadedFile.html

また、(__constructエンティティの)$filesプロパティを配列として初期化し、setFiles()新しい配列インデックスを格納するように変更しようとしました$this->files[] = $file;...ご存知のとおりです。

しかし、Symfony はその例外を教えてくれます:

フォームのビュー データは、クラス Symfony\Component\HttpFoundation\File\File のインスタンスであると予想されますが、(n) 配列です。「data_class」オプションを null に設定するか、a(n) 配列を Symfony\Component\HttpFoundation\File\File のインスタンスに変換するビュー トランスフォーマーを追加することで、このエラーを回避できます。

私はデータトランスフォーマーに慣れていません。そして、今どのようにできるのか理解できません。または、すべてのファイル データで UploadedFile オブジェクトを取得することが本当に役立つ場合。

合成では...この与えられた情報と以下のコードで。最後に追加されたファイルだけでなく、FileUploadオブジェクトに正しい数のファイルを取得するのを手伝ってくれる人はいますか? ありがとうございました

github にレポを作成しました: https://github.com/jeflopo/fileupload

簡潔にするために、関連ファイルを次に示します。

4

1 に答える 1

3

エラーを修正するプルリクエストを作成しました!

あとは、アップロードされたファイルに一意のファイル名を作成し、各ファイルに対して move メソッドを使用するだけです。それらを移動しないと、ファイルは保存されません!

マップを false に設定したため、エンティティにはファイルが含まれていません。ファイル パスを保存するには、作成したばかりのファイル名で配列を作成する必要があります。

于 2013-03-13T18:34:48.460 に答える