我正在尝试用asp.net core 2.0创建一个身份验证应用程序,并尝试创建一些rest方法。我想做的是创建一个get方法来返回配置文件图像。我得到这个:
[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);
}
}
而且它确实有效。事实上,调用此方法将返回图像的base64字符串表示形式。但我想得到的是图像本身。然后,我试图改变
GetPicture
方法如下:
[HttpGet]
public async Task<IActionResult> GetPicture(string username)
{
var user = await _userManager.FindByNameAsync(username);
var bytes = Convert.FromBase64String(user.Picture);
Image image;
using (var ms = new MemoryStream(bytes))
{
image = Image.FromStream(ms);
}
return Ok(image);
}
但这并不像我所希望的那样。我想是内容类型的问题,所以我试着改变
[Produces("application/json")
到
[Produces("image/jpeg")
或者类似的东西。但它不起作用,因为它给了我一个
406错误:不可接受
. 我没什么想法了,所以我想问你能否帮我解决这个问题。提前谢谢你!