我正在尝试将 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; }
1 回答
紫衣仙女
TA贡献1839条经验 获得超15个赞
你仍然需要设置maxRequestLength的web.config明确。该默认为4MB。
例如 51200 为 50MB。
<?xml version="1.0"?>
<configuration>
...
<system.web>
<httpRuntime executionTimeout="240" maxRequestLength="51200" />
</system.web>
...
</configuration>
- 1 回答
- 0 关注
- 163 浏览
添加回答
举报
0/150
提交
取消