ユーザーが大量の画像をサーバーにアップロードできるようにする ASP.NET MVC 4 アプリを構築しています。Product エンティティが製品画像に関連付けられ、Category エンティティがカテゴリ画像に関連付けられるように、各画像には特定のエンティティが関連付けられます。
私は自分のスキーマにテーブルを作成して、アップロードされたすべてのファイルの記録を文字列 'Ref' で保持しています。これは、ユーザーがファイルの削除など、ファイルで操作を実行するたびに解析します。そうすれば、ユーザーがファイルを削除したいときに、スキーマ内のファイルに削除のマークを付けるだけで、1 日 1 回、マークされたすべてのファイルをまとめて削除することで、サーバーにアップロードされたファイルを「サニタイズ」できます。
たとえば、ファイルimage.jpg
が製品画像としてアップロードされた場合、ref タグimage productID 4
に、これが productID 4 の製品の画像であることを示します。
これは、アップロードされたファイルの処理を実装する正しい方法ですか、それともより良い方法がありますか? これは、このファイルに関連付けられている他のエンティティを「参照」する正しい方法ですか?
これが私のコードファーストエンティティです:
public class UploadedFile
{
[Key]
public int ID { get; set; }
public string RelativePath { get; set; }
public string AbsolutePath { get; set; }
public string Ref { get; set; }
public DateTime UploadedOn { get; set; }
public bool IsMarkedForDeletion { get; set; }
public bool IsImage { get; set; }
}
他のプロパティが設定されているときに、特定のパブリック プロパティが自動的に設定されるように宣言する方法はありますか? たとえば、アップロードされたファイルの種類が画像の場合 (IsImage = true を設定するたびに) 自動的に設定される ImageWidth & ImageHeight プロパティを追加したいと思います。