MultipartFormDataContent formData.Add(new StreamContent((Stream)fbxStream), "multiFile", nowFileName); 如何转换成 WWWForm
时间: 2024-12-16 18:27:25 浏览: 5
将 `MultipartFormDataContent` 转换成 `WWWFormUrlEncodedContent` 的方式如下:
首先,你需要创建一个新的 `NameValueCollection` 或者 `Dictionary<string, string>` 来保存键值对,然后逐个添加文件数据。假设 `fbxStream` 是你要上传的文件流,`nowFileName` 是文件名,你可以这样做:
```csharp
using System;
using System.Collections.Generic;
using System.IO;
using System.Net.Http;
using System.Text;
// 创建一个字典来存储表单数据
var formData = new Dictionary<string, string>
{
// 文件数据
{ "multiFile", Convert.ToBase64String(fbxStream.ToArray()) },
// 如果有其他普通文本字段,如 "fileName" 和 "description"
{ "fileName", nowFileName },
{ "description", "描述文件内容" } // 可选,根据需要添加
};
// 将字典转换为 NameValueCollection,以便用于 WWWFormUrlEncodedContent
NameValueCollection formValues = new NameValueCollection(formData);
// 创建一个WWWFormUrlEncodedContent实例
var-wwwForm = new WwwFormUrlEncodedContent(formValues);
```
现在,你可以把这个 `wwwForm` 传递给 HttpClient 的 PostAsync 方法:
```csharp
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.PostAsync("http://api.example.com/upload", wwwForm);
```
阅读全文