gpt4 book ai didi

asp.net-mvc - 如何使用 ASP.NET MVC 5 应用程序将文件上传到第三个 API 服务?

转载 作者:行者123 更新时间:2023-12-02 10:57:55 26 4
gpt4 key购买 nike

我有一个基于 asp.net mvc 5 的应用程序。我的方法之一允许用户通过 html 表单上传文件。

当用户发布文件时,框架绑定(bind)将表单数据绑定(bind)到名为 UploadFileViewModel 的 View 模型。 UploadFileViewModel 有一个名为 UploadedFile 的属性,其类型为 HttpPostedFileBase,它为我提供有关上传文件的信息。通常,我会使用 HttpPostedFileBase 类上的 SaveAs() 方法将临时文件保存到服务器上的永久位置。

但是,在这种情况下,我不想将文件保存到服务器,而是需要调用第 3 方 API 来存储文件。 API,需要 3 个参数

  1. 文件(类型文件)
  2. 标题(字符串类型)
  3. recordType(字符串类型)

如何使用 WebClient 类上传 HttpPostedFileBase 对象以及 titlerecordType API 的参数?

WebClient 类有一个名为 UploadFile 的方法,它接受 uri(字符串)和 fileName(字符串) 我如何使用此方法来调用远程API?

最佳答案

尝试使用 HttpClient 类

 public async Task UploadAsync()
{
using (HttpClient client = new HttpClient())
{
client.BaseAddress = new Uri("http://hello.net/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

MultipartFormDataContent content = new MultipartFormDataContent();
ByteArrayContent fileContent = new ByteArrayContent(System.IO.File.ReadAllBytes("C:/Images/testing.png"));
fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = "testing.png" };
content.Add(fileContent);

HttpResponseMessage response = await client.PostAsync("api/SaveFile?title=hello&recordType=audio", content);
.....
....
}
}

关于asp.net-mvc - 如何使用 ASP.NET MVC 5 应用程序将文件上传到第三个 API 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50339994/

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