httppostedfilebase
でアップロードした画像をデータベースに保存したい。
どうすればいいですか?データベース フィールドを構造化するにはどうすればよいですか? データベースに保存するには、どのようなコードを作成すればよいですか?
httppostedfilebase
でアップロードした画像をデータベースに保存したい。
どうすればいいですか?データベース フィールドを構造化するにはどうすればよいですか? データベースに保存するには、どのようなコードを作成すればよいですか?
if(uploadedImage == null || uploadedImage.ContentLength == 0)
{
// no image
}
var image = new Image();
image.Name = uploadedImage.FileName;
image.ContentType = uploadedImage.ContentType;
int length = uploadedImage.ContentLength;
byte[] buffer = new byte[length];
uploadedImage.InputStream.Read(buffer, 0, length);
image.Data = buffer;
Image
Name
クラスはデータベースエンティティであるため、データベース内ContentType
にが必要ですData
。uploadedImage
ですHttpPostedFileBase
。
[HttpPost]
public ActionResult SaveImage(HttpPostedFileBase image)
{
Foo foo=new Foo();
if (image != null)
{
foo.ImageMimeType = image.ContentType;//public string ImageMimeType { get; set; }
foo.ImageData = new byte[image.ContentLength];//public byte[] ImageData { get; set; }
image.InputStream.Read(product.ImageData, 0, image.ContentLength);
}
fooRepository.Save(foo);
}
}
画像やその他のファイルを SQL データベースに格納するために、データ型 varbinary(max) を使用します。
このデータ型の操作方法の例については、http: //msdn.microsoft.com/en-us/library/a1904w6t (VS.80).aspx を参照してください。
まず第一に、画像をデータベースに保存することは物議を醸すテーマなので、これが本当にあなたが望んでいることかどうかを必ず検討してください。詳細な議論については、次を参照してください。
次に考慮すべきことは、どのテクノロジーを使用するかです。Linq2SQL、NHibernate、Entity Framework、またはプレーンな ADO.NET を使用しますか? テクノロジーを選択するときは、画像の保存だけに集中するのではなく、アプリケーション アーキテクチャ全体を考慮に入れる必要があります (それがアプリのすべてでない限り)。それが解決したら、選択したテクノロジーがバイナリデータをどのように処理するかを確認してください。
からバイナリ データにアクセスできますHttpPostedFileBase.InputStream
。