これは非常に簡単な問題のようですが、広範な検索の後で私が探しているものを見つけることができないようです。 URLからイメージを取り出してSQLデータベースに保存するための最良の実装は何ですか?ASP.NET MVC3(C#)URLからデータベースへのイメージ
私はC#とLinq to SQLでMVC3を使用しています。
これは非常に簡単な問題のようですが、広範な検索の後で私が探しているものを見つけることができないようです。 URLからイメージを取り出してSQLデータベースに保存するための最良の実装は何ですか?ASP.NET MVC3(C#)URLからデータベースへのイメージ
私はC#とLinq to SQLでMVC3を使用しています。
まず、データベース
string tnail = "";
WebClient client = new WebClient();
using (Image src = Image.FromFile("http://www.example.com/image.jpg"))
{
using (Bitmap dst = new Bitmap(25, 33))
{
using (Graphics g = Graphics.FromImage(dst))
{
g.SmoothingMode = SmoothingMode.HighQuality;
g.InterpolationMode = InterpolationMode.High;
g.DrawImage(src, 0, 0, dst.Width, dst.Height);
}
tnail = tname;
tnail = Path.ChangeExtension(tnail, null);
tnail += "_thumbnail";
tnail = Path.ChangeExtension(tnail, "jpg");
dst.Save(Path.Combine(Server.MapPath(imagepath), tnail), ImageFormat.Jpeg);
}
}
おそらく、データベースに直接保存するのではなく、中央のファイルストレージへの参照を保存することをお勧めします。
あなたは私たちは、あなたがファイルを表すバイト配列プロパティを持っている(下記ImageFile
という名前の)永続エンティティを持っていると仮定した場合、あなたは[WebClient.DownloadData][1]
を使用することができますInserting image over 3mb via linq-to-sql
で顔をしているかもしれない、と述べました。
using(WebClient client = new WebClient())
{
var img = new ImageFile();
img.Data = client.DownloadData("http://www.example.com/image.jpg");
// continue with saving your file.
}
'Image.FromFile()'、それは 'ArgumentException'を投げると同じように引数としてURIを受け入れないで保存されたURLから、そのイメージをダウンロードします。http:// msdn.microsoft.com/en-us/library/stf701f5(v=vs.110).aspx – Monica