首页 新闻 会员 周边 捐助

安卓向.net core api传输图片,执行保存到数据库命令后返回400错误代码,用postman测试没有问题安卓程序不行

0
[已解决问题] 解决于 2020-01-29 18:12

安卓向.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});
        }
    }
894792409s的主页 894792409s | 菜鸟二级 | 园豆:206
提问于:2020-01-29 17:00

e.Message 中是什么错误信息?

dudu 4年前

@dudu: 显示的是更新条目出错 An error occurred while updating the entries. See the inner exception for details.

894792409s 4年前
< >
分享
最佳答案
0

从错误信息看是保存到数据库时出错了,建议将异常写入日志,看日志中的详细错误信息。

try
{
   //...
}
catch (Exception e)
{
    _logger.LogError(e, "UploadImageAsync");
    return BadRequest(new { state = "Error", msg = e.Message ,trace=e.StackTrace});
}
奖励园豆:5
dudu | 高人七级 |园豆:29570 | 2020-01-29 17:42

好的,谢谢您,我试试,日志从哪里看呢,需要设置吗路径或开启这个功能什么的吗

894792409s | 园豆:206 (菜鸟二级) | 2020-01-29 17:47

@894792409s: 推荐阅读园子里的博文:玩转 ASP.NET Core 中的日志组件

dudu | 园豆:29570 (高人七级) | 2020-01-29 17:51

@dudu: 好的

894792409s | 园豆:206 (菜鸟二级) | 2020-01-29 17:55

@dudu: 找到问题了,困扰我这么长时间的问题居然是一个字段超出了数据库限制的长度,我还以为是传输过程中的问题,方向完全错了。在和web service交互的过程中不太方便看到错误信息,日志确实很有用,谢谢您

894792409s | 园豆:206 (菜鸟二级) | 2020-01-29 18:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册