首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将HttpContent转换为byte[]

将HttpContent转换为byte[]
EN

Stack Overflow用户
提问于 2015-06-30 19:53:34
回答 4查看 22.1K关注 0票数 11

我目前正在开发一个c# web。对于特定的调用,我需要使用ajax调用向API发送2个图像,以便API可以将它们保存为数据库中的var二进制(Max)。

  1. 如何从Image对象中提取HttpContentbyte[]
  2. 我该怎么做两次?每幅图像一次。

-

代码语言:javascript
复制
var authToken = $("#AuthToken").val();
var formData = new FormData($('form')[0]);
debugger;
$.ajax({
    url: "/api/obj/Create/", 
    headers: { "Authorization-Token": authToken },
    type: 'POST',
    xhr: function () { 
        var myXhr = $.ajaxSettings.xhr();
        return myXhr;
    },
    data: formData,
    cache: false,
    contentType: false,
    processData: false
});

-

代码语言:javascript
复制
public async Task<int> Create(HttpContent content)
{
    if (!content.IsMimeMultipartContent())
    {
        throw new UnsupportedMediaTypeException("MIME Multipart Content is not supported");
    }

    return 3;
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-07-02 18:00:46

代码语言:javascript
复制
if (!content.IsMimeMultipartContent())
{
    throw new UnsupportedMediaTypeException("MIME Multipart Content is not supported");
}

var uploadPath = **whatever**;
if (!Directory.Exists(uploadPath))
{
    Directory.CreateDirectory(uploadPath);
}

var provider = new MultipartFormDataStreamProvider(uploadPath);
await content.ReadAsMultipartAsync(provider);

return File.ReadAllBytes(provider.FileData[0].LocalFileName);
票数 2
EN

Stack Overflow用户

发布于 2015-06-30 20:45:02

HttpContent有一个异步方法,它返回ByteArray即(ByteArray的任务)

代码语言:javascript
复制
 Byte[] byteArray = await Content.ReadAsByteArrayAsync();

可以同步运行该方法。

代码语言:javascript
复制
Byte[] byteArray = Content.ReadAsByteArrayAsync().Result;
票数 22
EN

Stack Overflow用户

发布于 2015-06-30 20:45:40

您可以使用HttpContent.ReadAsByteArrayAsync

代码语言:javascript
复制
byte[] bytes = await response.Content.ReadAsByteArrayAsync();

或者,您可以用HttpContent.ReadAsStreamAsync读取内容并从中提取到byte[]

代码语言:javascript
复制
var stream = await response.Content.ReadAsStreamAsync();
using (var memoryStream = new MemoryStream())
{
      await stream.CopyToAsync(memoryStream);
      return memoryStream.ToArray();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31147279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档