2013-03-13 10 views
5

私は、複数のファイルフィールドを持つフォームを作成しようとしています。ドキュメントはかなり曖昧なので:FileUpload ObjectをSymfony2で複数のファイルを扱うには?

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

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

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

理論的には、私は、ファイルアップロードのファイルが含まれている必要がありアレイのように名前を作ったが、それがない場合。 UploadedFileオブジェクトは複数のファイルデータを格納できますか?またはただ一つ?

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

はまた、(実体の__constructに)配列として$filesプロパティを初期化し、新しい配列インデックスの$this->files[] = $file; ...あなたが知って格納するsetFiles()を修正しようとしました。

しかし、symfonyはその例外私に語った:

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

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

合成中... この情報と以下のコードを使用してください。 FileUploadオブジェクトに、最後に追加されたのではなく、正しい数のファイルを取得するのに役立つ人はいますか?

+0

これは何ですか? http://grepnovablogger.blogspot.com.es/2011/12/symfony2-subir-varios-archivos-al.html – Biruwon

+0

実用的で良い例ですが、コレクションタイプを使用しています。これは、単一のフィールドファイルの束を意味します。複数の属性を持つフィールドが1つだけ必要です。 – Jeflopo

答えて

3

私は、エラーを修正プル要求を作成しました!

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

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

+0

うわー、私が思っていたよりもはるかに簡単です。ありがとう、本当に。私はそれを試してみましょう。ああ、笑って、これは私の初めてのマージプルのギターです。私はそれをうまくやりたい。 xD – Jeflopo

関連する問題