c# .net6 使用multipart/form-data POST上传文件,给出范例
时间: 2024-12-12 20:32:48 浏览: 11
用C语言编写multipart/form-data实现上传文件
5星 · 资源好评率100%
在C# .NET 6中,如果你想通过`multipart/form-data`格式POST上传文件,通常会涉及到使用HttpClient、MultipartFormDataContent以及File类。下面是一个简单的示例:
```csharp
using System;
using System.IO;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
public async Task UploadFileAsync(string url, string filePath)
{
// 创建一个HTTP客户端实例
HttpClient httpClient = new HttpClient();
try
{
// 创建MultipartFormDataContent对象
MultipartFormDataContent formData = new MultipartFormDataContent();
// 添加文件部分
var filePart = new StreamContent(File.OpenRead(filePath));
filePart.Headers.ContentType = MediaTypeHeaderValue.Parse("application/octet-stream"); // 设置正确的MIME类型,这里是二进制数据
formData.Add(filePart, "file", Path.GetFileName(filePath)); // 参数名可以自定义
// 添加其他表单字段,如果需要
if (!string.IsNullOrEmpty(fileName))
{
var formField = new StringContent(fileName);
formField.Headers.ContentType = MediaTypeHeaderValue.Parse("text/plain");
formData.Add(formField, "fileName");
}
// 执行POST请求
HttpResponseMessage response = await httpClient.PostAsync(url, formData);
// 检查响应状态码
response.EnsureSuccessStatusCode();
Console.WriteLine($"文件上传成功, 返回状态码: {response.StatusCode}");
}
catch (Exception ex)
{
Console.WriteLine($"文件上传失败: {ex.Message}");
}
}
// 调用函数并传入URL和文件路径
UploadFileAsync("http://your-api-url.com/upload", @"C:\path\to\your\file.jpg");
阅读全文