C# 如何通过RESTAPI传输图像?(内核2.0内置)
我正在尝试使用ASP.NET Core 2.0创建一个身份验证应用程序,并尝试创建一些REST方法。我想做的是创建一个GET方法,返回概要文件图像。我明白了:C# 如何通过RESTAPI传输图像?(内核2.0内置),c#,asp.net-core-mvc,C#,Asp.net Core Mvc,我正在尝试使用ASP.NET Core 2.0创建一个身份验证应用程序,并尝试创建一些REST方法。我想做的是创建一个GET方法,返回概要文件图像。我明白了: [Produces("application/json")] public class UserController : Controller { private readonly UserManager<ApplicationUser> _userManager; public UserProfileCon
[Produces("application/json")]
public class UserController : Controller
{
private readonly UserManager<ApplicationUser> _userManager;
public UserProfileController(UserManager<ApplicationUser> userManager)
{
_userManager = userManager;
}
[HttpGet]
public async Task<IActionResult> GetPicture(string username)
{
var user = await _userManager.FindByNameAsync(username);
return Ok(user.Picture);
}
}
但它没有像我希望的那样起作用。我认为这是内容类型的问题,所以我尝试将
[products(“application/json”)
更改为[products”(“image/jpeg”)
或类似的东西。但它不起作用,因为它会给我返回一个406错误:不可接受。我没有主意了,所以我想问你是否可以帮我解决这个问题。提前谢谢你!如果你想返回图像,那么只需返回带有适当mimetype的字节。返回OK结果
就可以了ing使您传入的任何对象序列化,并将整个响应作为application/json
发送,这显然不是图像。这就是您所需要的:
[HttpGet]
public async Task<IActionResult> GetPicture(string username)
{
var user = await _userManager.FindByNameAsync(username);
var bytes = Convert.FromBase64String(user.Picture);
return File(bytes, "image/jpeg");
}
[HttpGet]
公共异步任务GetPicture(字符串用户名)
{
var user=await\u userManager.FindByNameAsync(用户名);
var bytes=Convert.FromBase64String(user.Picture);
返回文件(字节,“图像/jpeg”);
}
请注意,要返回文件,您只需文件(user.Picture,…)
正如您所说,这就是我需要的。谢谢!
[HttpGet]
public async Task<IActionResult> GetPicture(string username)
{
var user = await _userManager.FindByNameAsync(username);
var bytes = Convert.FromBase64String(user.Picture);
return File(bytes, "image/jpeg");
}