.net 客户端httpclient上传文件及webapi代码
时间: 2023-08-18 13:03:47 浏览: 62
以下是一个使用 .NET HttpClient 类上传文件的示例代码:
```csharp
using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
public static async Task UploadFile(string filePath, string uploadUrl)
{
using (var client = new HttpClient())
using (var formData = new MultipartFormDataContent())
{
var fileContent = new StreamContent(File.OpenRead(filePath));
formData.Add(fileContent, "file", Path.GetFileName(filePath));
var response = await client.PostAsync(uploadUrl, formData);
if (!response.IsSuccessStatusCode)
{
throw new Exception($"Upload failed. Status code: {response.StatusCode}");
}
}
}
```
在上面的代码中,我们使用 HttpClient 类来创建一个 HTTP 客户端实例,并使用 MultipartFormDataContent 类来创建一个表单数据对象。然后,我们使用 StreamContent 类来创建一个文件内容对象,并将其添加到表单数据对象中。最后,我们使用 PostAsync 方法来将表单数据发送到服务器。
以下是一个使用 ASP.NET Web API 接收上传文件的示例代码:
```csharp
[HttpPost]
public async Task<HttpResponseMessage> UploadFile()
{
try
{
var provider = new MultipartMemoryStreamProvider();
await Request.Content.ReadAsMultipartAsync(provider);
foreach (var file in provider.Contents)
{
var fileName = file.Headers.ContentDisposition.FileName.Trim('\"');
var buffer = await file.ReadAsByteArrayAsync();
// Save the file to disk or do other processing
// ...
}
return Request.CreateResponse(HttpStatusCode.OK);
}
catch (Exception ex)
{
return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex);
}
}
```
在上面的代码中,我们使用 MultipartMemoryStreamProvider 类来接收上传的文件数据。然后,我们遍历 provider.Contents 集合来处理每个文件。在这个例子中,我们只是将文件的字节数组读取到一个缓冲区中,但你可以根据需要将它们保存到磁盘上或者进行其他处理。最后,我们返回一个 HTTP 响应,通知客户端上传已经成功完成。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)