私は、複数のファイルフィールドを持つフォームを作成しようとしています。ドキュメントはかなり曖昧なので:FileUpload ObjectをSymfony2で複数のファイルを扱うには?
- http://symfony.com/doc/current/reference/forms/types/file.html
- http://symfony.com/doc/current/cookbook/doctrine/file_uploads.html
私はクライアントからファイルを処理するために、(以下DOCのURLに基づき)W3C FileReaderのAPIを使用して管理することにしましたエンティティへのビューからのデータの基礎。現在、クライアント上のドロップ、メタデータ、および複数の選択をドラッグして&をサポートしています。
- http://www.html5rocks.com/en/tutorials/file/dndfiles/
- http://playground.html5rocks.com/#reading_file_metadata
- https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications
しかし、私はに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オブジェクトに、最後に追加されたのではなく、正しい数のファイルを取得するのに役立つ人はいますか?
形式: https://github.com/jeflopo/fileupload/blob/master/src/Acme/DemoBundle/Form/Type/FileUploadType.php
エンティティ: https://github.com/jeflopo/fileupload/blob/master/src/Acme/DemoBundle/Entity/FileUpload.php
簡潔にするためにhttps://github.com/jeflopo/fileupload、ここに関連するファイルは、次のとおりですgithubの上のリポジトリを作った
はありがとうございました
コントローラ(ジャストuploadActionを参照してください): https://github.com/jeflopo/fileupload/blob/master/src/Acme/DemoBundle/Controller/DemoController.php
のJavaScriptクライアント上のファイルを処理します(サーバー内のファイルの動作には影響しません): https://github.com/jeflopo/fileupload/blob/master/src/Acme/DemoBundle/Resources/public/js/upload.js
これは何ですか? http://grepnovablogger.blogspot.com.es/2011/12/symfony2-subir-varios-archivos-al.html – Biruwon
実用的で良い例ですが、コレクションタイプを使用しています。これは、単一のフィールドファイルの束を意味します。複数の属性を持つフィールドが1つだけ必要です。 – Jeflopo