gpt4 book ai didi

c# - 如何使用 Flurl 上传文件和表单数据?

转载 作者:可可西里 更新时间:2023-11-01 09:00:04 34 4
gpt4 key购买 nike

我正在尝试上传包含正文内容的文件。 PostMultipartAsync 是唯一的方法吗?

在我的 C# 后端代码中,我有这个:

var resource = FormBind<StorageFileResource>();
var file = Request.Files.First().ToPostedFile();

FormBind 从请求中读取数据并填充对象。

通过使用 PostMultipartAsync 我知道它应该像这样开始:

.PostMultipartAsync((mp) => { mp.AddFile(name, stream, name)}),但我不知道如何添加对象。您对此有什么想法吗?

这是我目前的尝试:

public static async Task<T> PostFileAsync<T>(string url, object data, string name, Stream stream, object queryString = null)
where T : class
{
return await HandleRequest(async () => queryString != null
? await url
.SetQueryParams(queryString)
.SetClaimsToken()
.PostMultipartAsync((mp) => { mp.AddFile(name, stream, name)})
.ReceiveJson<T>()
: await url
.SetClaimsToken()
.PostMultipartAsync((mp) => mp.AddFile(name, stream, name))
.ReceiveJson<T>());
}

当前前端发出的请求:

enter image description here

最佳答案

有多种方法可以使用 Flurl 将“部分”添加到多部分 POST。我没有把它添加到 docs但是这里有一个来自 issue 的例子这基本上证明了每一种可能性:

var resp = await "http://api.com"
.PostMultipartAsync(mp => mp
.AddString("name", "hello!") // individual string
.AddStringParts(new {a = 1, b = 2}) // multiple strings
.AddFile("file1", path1) // local file path
.AddFile("file2", stream, "foo.txt") // file stream
.AddJson("json", new { foo = "x" }) // json
.AddUrlEncoded("urlEnc", new { bar = "y" }) // URL-encoded
.Add(content)); // any HttpContent

关于c# - 如何使用 Flurl 上传文件和表单数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41042591/

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