安卓向.net core api传输图片,执行保存到数据库命令后返回400错误代码,用postman测试没有问题安卓程序不行,其他api没有问题,在执行保存到数据库命令之前也没有问题。希望各位大佬可以帮我解决一下问题,.net core代码如下:
[HttpPost]
[Route("UploadImage")]
public async Task<IActionResult> UploadImageAsync(IFormFile tx, [FromForm]string userId)
{
try
{
Account account = await _context.Account.FirstAsync(a => a.UserId == int.Parse(userId));
MemoryStream memory = new MemoryStream();
tx.CopyTo(memory);
account.UserPhoto = memory.ToArray();
account.UserPhotoType = tx.ContentType;
// return Ok(account.UserPhotoType+account.UserPhoto);
//return Ok(tx.FileName + " " + userId + " " + account.UserId);
_context.Update(account);
await _context.SaveChangesAsync();
return Ok("123456789");
}
catch (Exception e)
{
return BadRequest(new { state = "Error", msg = e.Message ,trace=e.StackTrace});
}
}
从错误信息看是保存到数据库时出错了,建议将异常写入日志,看日志中的详细错误信息。
try
{
//...
}
catch (Exception e)
{
_logger.LogError(e, "UploadImageAsync");
return BadRequest(new { state = "Error", msg = e.Message ,trace=e.StackTrace});
}
好的,谢谢您,我试试,日志从哪里看呢,需要设置吗路径或开启这个功能什么的吗
@894792409s: 推荐阅读园子里的博文:玩转 ASP.NET Core 中的日志组件
@dudu: 好的
@dudu: 找到问题了,困扰我这么长时间的问题居然是一个字段超出了数据库限制的长度,我还以为是传输过程中的问题,方向完全错了。在和web service交互的过程中不太方便看到错误信息,日志确实很有用,谢谢您
– dudu 4年前e.Message
中是什么错误信息?@dudu: 显示的是更新条目出错 An error occurred while updating the entries. See the inner exception for details.
– 894792409s 4年前