ホームページ >データベース >mysql チュートリアル >C# を使用してデータベースに画像を保存するには?

C# を使用してデータベースに画像を保存するには?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-03 00:48:39587ブラウズ

How to Save Images in a Database using C#?

C# を使用してデータベースに画像を保存する

ユーザー画像をデータベースに保存する場合、画像を互換性のあるバイナリ形式に変換することが重要です。データベースストレージ。 C# では、次の手順でこれを実現できます:

  1. 画像データのバイト配列を作成する:
    ユーザー画像をバイト配列に変換します。この手順には、File クラスまたは Image クラスを使用してイメージ ファイルを読み取り、それをバイト配列として保存することが含まれます。
  2. バイナリ データでパラメータ化されたクエリを使用する:
    SQL インジェクション攻撃を防止し、改善するためパフォーマンスを向上させるには、DbType.Binary 型のパラメータを持つパラメータ化されたクエリを使用します。このパラメータは、画像データを表すバイト配列を保持します。
  3. 画像を保存するクエリを実行します。
    パラメータ化されたクエリを実行して、画像データをデータベースに挿入します。バイナリ データは、画像情報を保持しながら、指定された列に保存されます。

コード例:

using System.Drawing;
using System.Drawing.Imaging;
using System.Data;

public static void SaveImage(string path, IDbConnection connection)
{
    using (var command = connection.CreateCommand())
    {
        // Read the image file and convert it to a byte array
        Image img = Image.FromFile(path);
        MemoryStream tmpStream = new MemoryStream();
        img.Save(tmpStream, ImageFormat.Png);
        tmpStream.Seek(0, SeekOrigin.Begin);
        byte[] imgBytes = new byte[MAX_IMG_SIZE];
        tmpStream.Read(imgBytes, 0, MAX_IMG_SIZE);

        // Create a binary parameter for the image data
        command.CommandText = "INSERT INTO images(payload) VALUES (:payload)";
        IDataParameter par = command.CreateParameter();
        par.ParameterName = "payload";
        par.DbType = DbType.Binary;
        par.Value = imgBytes;
        command.Parameters.Add(par);

        // Execute the query to save the image
        command.ExecuteNonQuery();
    }
}

このコードは、画像をバイト配列に変換する方法を示します。バイナリ パラメーターを作成し、パラメーター化されたクエリを実行して、C# を使用して画像データをデータベースに保存します。

以上がC# を使用してデータベースに画像を保存するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。