如何通过 Web API 返回图像

Monstertjie_za

通过 Web api 将我的图像作为 Base64 编码字符串返回时,我收到“414(请求 URI 太长)”错误。

我目前在我的 Web API 控制器中有以下操作:

[System.Web.Http.Route("GetAllEvents")]
public async Task<IEnumerable<Event>> Get()
{
    var vm = EventsViewModel.NewInstance;
    return await vm.GetAllEvents();
}

和 vm.GetAllEvents() 代码:

public async Task<List<Event>> GetAllEvents()
    {
        var result = await DataStore.SelectAll();

        result.ForEach(x =>
        {
            var byteArray = File.ReadAllBytes(x.ThumbnailPath);
            x.ThumbnailEncoded = Convert.ToBase64String(byteArray);
        });

        return result;
    }

我使用 WebAPI 操作如下:

this.ajaxRetrieve = function(url, data, onSuccessCallback, onErrorCallback) {
    $.ajax({
        url: url,
        data: data,
        type: 'GET',
        async: false,
        dataType: 'JSON',
        success: function(result) {
            onSuccessCallback(result);
        },
        error: function(xhr, status, error) {
            onErrorCallback(xhr, status, error);
        }
    });
}

采取什么更好的方法来避免这种情况发生?

穆罕默德

我强烈建议您使用流而不是 Base64String。它的高效和快速。在这里你可以找到很好的例子:在 ASP.NET Web API 中从控制器返回二进制文件

更新但您无法使用 web api 返回流数组。所以替代选项是字节数组。像这样:

[HttpGet]
public async Task<List<byte[]>> Get()
{
    var files= await GetAllEvents();

    return files;
}

GetAllEvents()代码:

public async Task<List<byte[]>> GetAllEvents()
{
    var list = new List<byte[]>();
    for (int i = 0; i < 5; i++)
    {
        var byteArray = await Task.Run(() => System.IO.File.ReadAllBytes(@"filePath"));
        list.Add(byteArray);
    }
    return list;
}

希望这可以解决您的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何通过Web API中的外部源获取图像并在base64中返回它?

来自分类Dev

如何通过Web API中的外部源获取图像并在base64中返回它?

来自分类Dev

如何使用Web API Get方法返回图像

来自分类Dev

如何通过web api 2发送图像?

来自分类Dev

如何从Web项目返回图像?

来自分类Dev

通过RESTful Web服务返回图像

来自分类Dev

如何返回Web API数据

来自分类Dev

如何通过 Web-API 上传文件(图像)并使用 jQuery 更新数据?

来自分类Dev

Web API如何通过HttpPost从数据库返回嵌套的JSON值?

来自分类Dev

C#Web.API返回的图像。MemoryStream-> StreamContent返回棕色图像

来自分类Dev

Web Api 2-如何在不保存到磁盘的情况下从HTTPGET返回图像(来自Azure存储的MemoryStream)?

来自分类Dev

如何限制Web API返回的列?

来自分类Dev

如何使Web API以所需的格式返回json?

来自分类Dev

如何通过Flask处理Web API

来自分类Dev

如何通过Web API调用存储过程

来自分类Dev

如何通过Steam Web API拒绝TradeOffer?

来自分类Dev

如何对“地图图像” API返回的图像进行地理定位?

来自分类Dev

如何对“地图图像” API返回的图像进行地理定位?

来自分类Dev

如何对“地图图像” API返回的图像进行地理定位?

来自分类Dev

如何通过REST API .net以二进制形式返回图像(而非URL)

来自分类Dev

返回通过各种模型,Web API,EntityFramework 6构建的对象

来自分类Dev

如何从返回模型的MVC Web API返回错误消息?

来自分类Dev

如何从Web服务返回的PNG数据创建FabricJS图像?

来自分类Dev

Web API返回XML

来自分类Dev

Web API返回XML

来自分类Dev

如何从Unsplash API返回的URL中获取图像?

来自分类Dev

如何使用Flickr API从某个地方返回图像

来自分类Dev

如何使用ContentType image / jpeg渲染从API返回的图像

来自分类Dev

如何摆脱从MVC Web API方法返回的$ type属性?

Related 相关文章

  1. 1

    如何通过Web API中的外部源获取图像并在base64中返回它?

  2. 2

    如何通过Web API中的外部源获取图像并在base64中返回它?

  3. 3

    如何使用Web API Get方法返回图像

  4. 4

    如何通过web api 2发送图像?

  5. 5

    如何从Web项目返回图像?

  6. 6

    通过RESTful Web服务返回图像

  7. 7

    如何返回Web API数据

  8. 8

    如何通过 Web-API 上传文件(图像)并使用 jQuery 更新数据?

  9. 9

    Web API如何通过HttpPost从数据库返回嵌套的JSON值?

  10. 10

    C#Web.API返回的图像。MemoryStream-> StreamContent返回棕色图像

  11. 11

    Web Api 2-如何在不保存到磁盘的情况下从HTTPGET返回图像(来自Azure存储的MemoryStream)?

  12. 12

    如何限制Web API返回的列?

  13. 13

    如何使Web API以所需的格式返回json?

  14. 14

    如何通过Flask处理Web API

  15. 15

    如何通过Web API调用存储过程

  16. 16

    如何通过Steam Web API拒绝TradeOffer?

  17. 17

    如何对“地图图像” API返回的图像进行地理定位?

  18. 18

    如何对“地图图像” API返回的图像进行地理定位?

  19. 19

    如何对“地图图像” API返回的图像进行地理定位?

  20. 20

    如何通过REST API .net以二进制形式返回图像(而非URL)

  21. 21

    返回通过各种模型,Web API,EntityFramework 6构建的对象

  22. 22

    如何从返回模型的MVC Web API返回错误消息?

  23. 23

    如何从Web服务返回的PNG数据创建FabricJS图像?

  24. 24

    Web API返回XML

  25. 25

    Web API返回XML

  26. 26

    如何从Unsplash API返回的URL中获取图像?

  27. 27

    如何使用Flickr API从某个地方返回图像

  28. 28

    如何使用ContentType image / jpeg渲染从API返回的图像

  29. 29

    如何摆脱从MVC Web API方法返回的$ type属性?

热门标签

归档