gpt4 book ai didi

asp.net-web-api - 直接从Web API核心端点返回base64编码的图像

转载 作者:行者123 更新时间:2023-12-04 11:38:33 25 4
gpt4 key购买 nike

我已经看到了这些答案:

  • Return an image from asp.net web api core as IActionResult
  • Response.Body.WriteAsync base64 string not working

  • 但是它们要么直接提供物理文件,要么从字节数组提供服务。

    请为我们的Web API端点提供一种直接从data:image/png; base64,(我们的base64字符串)返回内容类型:image/png的方法。

    最佳答案

    从文件夹中读取文件非常简单。窍门是在 ASP.NET Core 中使用 IHostingEnvironment 来获取当前的Web根路径。

    FilesController

    using System;
    using Microsoft.AspNetCore.Hosting;
    using Microsoft.AspNetCore.Mvc;

    namespace DemoWebApiCore.Controllers
    {
    [Route("api/[controller]")]
    public class FilesController : Controller
    {
    private readonly IHostingEnvironment _hostingEnvironment;

    public FilesController(IHostingEnvironment hostingEnvironment)
    {
    _hostingEnvironment = hostingEnvironment;
    }

    // GET api/files/sample.png
    [HttpGet("{fileName}")]
    public string Get(string fileName)
    {
    string path = _hostingEnvironment.WebRootPath + "/images/" + fileName;
    byte[] b = System.IO.File.ReadAllBytes(path);
    return "data:image/png;base64," + Convert.ToBase64String(b);
    }
    }
    }

    用法

    HomeController.cs
    using Microsoft.AspNetCore.Mvc;

    namespace DemoWebApiCore.Controllers
    {
    public class HomeController : Controller
    {
    // GET: /<controller>/
    public IActionResult Index()
    {
    return View();
    }
    }
    }

    Index.cshtml
    <html>
    <body>
    <img id="sample-img" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script type="text/javascript">
    $(function () {
    var url = "/api/files/sample.png";
    $.get(url, function (data) {
    console.log(data);
    $("#sample-img").attr('src', data);
    });
    })
    </script>
    </body>
    </html>

    关于asp.net-web-api - 直接从Web API核心端点返回base64编码的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44860069/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com