gpt4 book ai didi

c# - 接受通过ajax在Post请求中发送的Web API(C#)中的ArrayBuffer(不使用表单)

转载 作者:行者123 更新时间:2023-12-01 23:56:52 24 4
gpt4 key购买 nike

我有一个ajax方法用于将文件上传到服务器。 - 它将 ArrayBuffer(读取文件的 js 类型数组)发送到服务器,并添加 3 个参数。Endpoint 是用 C# Web API 应用程序编写的。

这是我的 C# 端点 -

public async Task<HttpResponseMessage> UploadFile(string param1, string param2, string fileName, [FromBody] byte[] arrayBuffer)
{
try
{
var response = await xyz.UploadFile(param1, param2, fileName, arrayBuffer);
var httpResponse = Request.CreateResponse(HttpStatusCode.Created);
httpResponse.Content = new StringContent(response, Encoding.UTF8, "application/json");
return httpResponse;
}
catch (Exception e)
{
return Request.CreateResponse(HttpStatusCode.InternalServerError, e.ToString());
}
}

我的问题是 C# 中 arrayBuffer 参数的类型应该是什么,以便它填充我在 js 请求中发送的二进制数据。

发送到 Sharepoint 的 Rest API 的相同请求会创建该文件,我已经检查过请求是否正确。唯一的问题是我的端点无法将 RequestBody 中发送的数据与其参数相匹配。

编辑

现在我们已将内容更改为 base64 字符串。无法尝试新事物,因为我们必须交付。如果有人遇到同样的问题,也许你也必须这样做。

最佳答案

您可以使用 HttpPostedFileBase 读取二进制文件

public async Task<HttpResponseMessage> UploadFile(string param1, string param2, string fileName, [FromBody] HttpPostedFileBase  arrayBuffer)
{

arrayBuffer.InputStream

关于c# - 接受通过ajax在Post请求中发送的Web API(C#)中的ArrayBuffer(不使用表单),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59787019/

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