相关疑难解决方法(0)

ASP.NET Core API Controller:Response.Body.WriteAsync base64字符串无法正常工作

我正在尝试从API控制器返回表示jpeg图像的base64字符串,并将其设置为src,<img>但我的所有尝试都失败了.

这是非常简单的HTML:

<img src="/api/TestBase64Image" alt="image test" />
Run Code Online (Sandbox Code Playgroud)

而我的控制器:

[Route("api/[controller]")]
public class TestBase64ImageController : Controller
{
    private const string _base64Image = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/7Sfg.....";
    private const string _base64Image2 = "/9j/4AAQSkZJRgABAQEBLAEsAAD/7Sfg.....

    [HttpGet]
    public async Task Get()
    {
        Response.ContentType = "image/jpeg";
        //Response.ContentType = "text/plain";
        //Response.ContentType = new MediaTypeHeaderValue("image/jpeg").ToString();
        //Response.ContentType = new MediaTypeHeaderValue("text/plain").ToString();

        //Response.Headers.Add("Content-Length", _base64Image.Length.ToString());
        //HttpContext.Response.ContentLength = _base64Image.Length;

        await Response.Body.WriteAsync(Encoding.UTF8.GetBytes(_base64Image), 0, _base64Image.Length);
        //await Response.Body.FlushAsync();
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试了几件事,比如删除FlushAsync(),改变了在字符串中定义ContentType,包含的方式data:image/jpeg;base64,但没有任何工作.

我在这里这里看到,在Response体流中写作是可行的,所以我认为我的方法很好(我之前尝试过返回一个简单的字符串但不能正常工作).

是的,我的base64字符串是正确的,因为我还试图将它直接包含在HTML中,图像显示正确.

我确切地说我不想使用任何JavaScript或Razor视图来实现这一点,只有纯HTML和我的控制器.

另请注意我在API控制器中.我不能像我们在一个空的ASP.NET Core项目Configure的 …

c# base64 image asp.net-core asp.net-core-webapi

8
推荐指数
1
解决办法
1万
查看次数

从asp.net web api core返回一个图像作为IActionResult

使用asp.net web api核心时,将图像文件作为IActionResult返回的最佳方法是什么?我尝试返回一个base64字符串,它工作正常.但不认为有效.是否有一种方法可以将图像文件对象本身作为IActionResult返回.

asp.net-core asp.net-core-webapi

6
推荐指数
3
解决办法
9248
查看次数

标签 统计

asp.net-core ×2

asp.net-core-webapi ×2

base64 ×1

c# ×1

image ×1