通过 web api 将大图像发布到数据库

我正在尝试将 3036x4048 照片保存到 SQL 数据库。我已经使用 Javascript 将它转换为 base64 字符串,但是每当我尝试将它发布到我的 web api 时,对象显示为空。我可以毫无问题地保存较小的照片,所以我知道 web api 有效。根据我的研究,byte[] 可以存储的最大长度是 2,146,435,071。我尝试发布的图像长度为 9,218,020。我还查看了图像大小,大约 6 MB。我还手动将此图像插入数据库,它接受它就好了。那么为什么我的 web api 不能处理更大的图像呢?图像大小 (6 MB) 是否太大?


这是一些代码。不确定它是否会有所帮助。


public class TicketPhoto

{

    public int PhotoID { get; set; }

    public byte[] Photo { get; set; }

    public string Description { get; set; }

}


 public static TicketPhoto SaveTicketPhoto(TicketPhoto tcktPhoto)

    {

        TicketPhoto ticketPhoto = new TicketPhoto();


        string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;


        using (SqlConnection connection = new SqlConnection(connectionString))

        {

            connection.Open();

            DataTable ticketPhotoTable = new DataTable();

            ticketPhotoTable.Columns.Add("PHOTO_ID", typeof(int));

            ticketPhotoTable.Columns.Add("PHOTO", typeof(byte[]));

            ticketPhotoTable.Columns.Add("DESCRIPTION", typeof(string));


            ticketPhotoTable.Rows.Add(

                                        tcktPhoto.PhotoID,

                                        tcktPhoto.Photo,

                                        tcktPhoto.PhotoData,

                                      );


            using (connection)

            {

                SqlCommand cmd = new SqlCommand("dbo.spSMSaveTicketPhoto", connection);

                cmd.CommandType = CommandType.StoredProcedure;

                SqlParameter tblParam = cmd.Parameters.AddWithValue("@tblTicketPhoto", ticketPhotoTable);

                tblParam.SqlDbType = SqlDbType.Structured;


                cmd.ExecuteReader();

                cmd.Dispose();

            }

        }

        return ticketPhoto;

    }


森栏
浏览 164回答 1
1回答

紫衣仙女

你仍然需要设置maxRequestLength的web.config明确。该默认为4MB。例如 51200 为 50MB。<?xml version="1.0"?><configuration>&nbsp; ...&nbsp; <system.web>&nbsp; &nbsp; <httpRuntime executionTimeout="240" maxRequestLength="51200" />&nbsp; </system.web>&nbsp; ...</configuration>
打开App,查看更多内容
随时随地看视频慕课网APP