2012-03-08 14 views
3

これは非常に簡単な問題のようですが、広範な検索の後で私が探しているものを見つけることができないようです。 URLからイメージを取り出してSQLデータベースに保存するための最良の実装は何ですか?ASP.NET MVC3(C#)URLからデータベースへのイメージ

私はC#とLinq to SQLでMVC3を使用しています。

答えて

1

まず、データベース

 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); 

          } 
         } 
+0

'Image.FromFile()'、それは 'ArgumentException'を投げると同じように引数としてURIを受け入れないで保存されたURLから、そのイメージをダウンロードします。http:// msdn.microsoft.com/en-us/library/stf701f5(v=vs.110).aspx – Monica

0

おそらく、データベースに直接保存するのではなく、中央のファイルストレージへの参照を保存することをお勧めします。

あなたは私たちは、あなたがファイルを表すバイト配列プロパティを持っている(下記ImageFileという名前の)永続エンティティを持っていると仮定した場合、あなたは[WebClient.DownloadData][1]を使用することができますInserting image over 3mb via linq-to-sql

0

で顔をしているかもしれない、と述べました。

using(WebClient client = new WebClient()) 
{ 
    var img = new ImageFile(); 
    img.Data = client.DownloadData("http://www.example.com/image.jpg"); 

    // continue with saving your file.  
} 
関連する問題