>데이터 베이스 >MySQL 튜토리얼 >C#을 사용하여 데이터베이스에 이미지를 저장하는 방법은 무엇입니까?

C#을 사용하여 데이터베이스에 이미지를 저장하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-03 00:48:39579검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.