それを管理するために私がしたことは、アップロードごとにデータベースエントリを作成することです
1 - web/upload/[月]/[日] のようなフォルダーにファイルをアップロードします (アップロードフォルダーを .htaccess で保護しました)
2 - (アップロードと呼ばれるドクトリンエンティティを作成しました) アップロード中に、名前、説明、ファイルパス、ファイル拡張子、所有者タイプ (ファイルをアップロードするエンティティ)、所有者 ID (エンティティ ID) を含むエントリを作成します。
3 - 最後に、「ブログ エンティティ」(vendor\entity\Blog) またはコメント エンティティ (vendor\entity\Comment) にファイルをアップロードした場合、属するすべてのファイルを要求します。
$em = $this->getDoctrine()->getEntityManager();
$documents = $em->getRepository('VendorBundle:Upload')->findBy(array(
'ownerType' =>$entityName,
'ownerId' =>$id
));
このアプローチは非常に柔軟で、あらゆる種類のエンティティに適用できるアップロード モジュールを作成できます。さらに、アップロードはインデックス化されるため、検索エンジンによる検索がはるかに効率的になります (説明、名前などのメタデータを追加できるため)。