0

写真を保存して、グリッドビューで名前、説明、価格などを表示したいのですが、方法がわかりません。まず、画像をアップロードするにはどうすればよいですか?現在、Windows フォーム アプリケーションを使用して他の情報を保存していますが、画像も保存する必要があります。これらの画像は、ASP.NET アプリケーションの Web ページから表示する必要があります。

パスを保存する必要はないと思います。他のユーザーがコンピューターの Web ページからパスをロードするからです。データベースvarbinaryまたはimage. これらを使用する方法や、グリッドビューで表示する方法がわかりません。画像へのパスがある場合は方法を知っていますが、画像がデータベースにある場合はわかりません。

画像をデータベースに保存してからグリッドビューに表示する方法を教えてもらえますか?

4

1 に答える 1

3

データベースに保存する場合は、 を使用する必要がありますvarbinary。機能的にはimage列タイプと同等imageですが、推奨されなくなりましたvarbinary(MAX)。通常、データベースから画像を使用するには、画像に関連付けられた識別子 ( http://www.example.com/imagehandler.ashx?id=42. この場合、ハンドラーは42、データベース内の id を持つイメージを見つけ、正しい MIME タイプを持つ列の内容に対応するバイト配列から応答を構築することを認識します。

サンプル コード:完全にテストされていません

public class ImageHandler: IHttpHandler
{
    public void ProcessRequest (HttpContext context)
    {
         int imageID = -1;
         if (context.Request.QueryString["id"] == null || !int.TryParse( context.Request.QueryString["id"], out imageID) ) 
         {
             throw new ArgumentException("Invalid or missing image id.");
         }

         using (var context = new ImagesDataContext())
         {
              var image = context.Images.SingleOrDefault( i => i.ID == imageID );
              if (image != null)
              {
                   context.Response.ContentType = image.MimeType;
                   context.Response.BinaryWrite( image.Content );
              }
              else
              {
                  // decide how you want to handle an image that isn't found
              }
         }

    }

    public bool IsReusable
    {
        get { return false; }
    } 
}
于 2011-07-08T01:21:40.710 に答える