如何使用asp.net webapi将图像保存在数据库中

问题描述 投票:0回答:1

我正在开发一个 API。到目前为止,一切都很顺利,但我必须在 API 中将图像保存到数据库中。场景,假设我有一个 Person 类,具有三个属性 {Name、Age 和 (byte[])Image}。如何通过API将Person的图片添加到数据库中?

public IHttpActionResult Create([FromBody] Person person) { }
c# asp.net sql-server image webapi
1个回答
0
投票

要实现此目的,您需要使用

VarBinary
来传递图像参数,如本例所示:

public static void InsertByteArrayintoSqlDatabase()
{
    string sampleText = "Hello World!";

    byte[] byteData = Encoding.UTF8.GetBytes(sampleText);

    using (SqlConnection sqlconnection = new SqlConnection(@"Data Source=.SQLExpress; 
Initial Catalog=MorganDB; Integrated Security=SSPI;"))
    {
        sqlconnection.Open();

        // create table if not exists 
        string createTableQuery = @"Create Table [MyTable](ID int, [BinData] varbinary(max))";
        SqlCommand command = new SqlCommand(createTableQuery, sqlconnection);
        command.ExecuteNonQuery();

        string insertXmlQuery = @"Insert Into [MyTable] (ID,[BinData]) Values(1,@BinData)";

        // Insert Byte [] Value into Sql Table by SqlParameter
        SqlCommand insertCommand = new SqlCommand(insertXmlQuery, sqlconnection);
        SqlParameter sqlParam = insertCommand.Parameters.AddWithValue("@BinData", byteData);
        sqlParam.DbType = DbType.Binary;
        insertCommand.ExecuteNonQuery();
    }

取自https://morgantechspace.com/2014/05/how-to-store-and-read-byte-array-in-sql-server-using-csharp.html

我不建议将图像存储在数据库中。相反,将它们存储为文件并将其名称/路径存储在数据库中更有意义。

© www.soinside.com 2019 - 2024. All rights reserved.