我正在处理文件上传,上传文件时将文件转换为 base64 字符串,并将此字符串发送到 API,该 API 将字符串保存在 SQL Server 数据库表中。
表中 base64 字符串列的类型是,NVARCHAR(MAX)
但我注意到在保存文件时,SQL 会截断字符串,这样当您使用 base64 在线转换为图像解码器时,它只生成整个图片的一部分,我注意到 base64保存到 SQL 之前的字符串的字符数约为 72,000,但在保存 SQL 后,它减少到约 4,000,这是解码不完整图像的原因。
为什么 SQL 会截断 base64 字符串,我可以做些什么来帮助我解决这个问题?
这是我的base64转换代码:
public async Task<IActionResult> UploadFile()
{
string base64string;
var myFile = Request.Form.Files["claimFile"];
var filetype = myFile.ContentType;
var filepath = Path.GetTempFileName();
using (var stream = System.IO.File.Create(filepath))
{
await myFile.CopyToAsync(stream);
}
byte[] imageByte = System.IO.File.ReadAllBytes(filepath);
base64string = Convert.ToBase64String(imageByte);
HttpContext.Session.SetString("Base64Str", base64string);
return new EmptyResult();
}