C# webapi 上传文件
时间: 2023-08-24 10:09:58 浏览: 150
在C# Web API中,上传文件的基本步骤如下:
1. 在Web API中创建一个POST方法接收文件上传请求。
2. 在POST方法中,使用HttpRequest对象获取客户端传递的文件数据。
3. 将文件数据保存到本地磁盘或数据库中。
以下是一个示例代码:
```
[HttpPost]
public async Task<IHttpActionResult> Upload()
{
// 检查是否有上传文件
if (!Request.Content.IsMimeMultipartContent())
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
// 读取文件数据
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();
var path = HttpContext.Current.Server.MapPath("~/App_Data/" + filename);
File.WriteAllBytes(path, buffer);
}
return Ok();
}
```
在上面的代码中,我们使用了MultipartMemoryStreamProvider类来读取上传文件的数据,然后使用File.WriteAllBytes方法将文件保存到本地磁盘中。你可以根据自己的需求修改代码以适应不同的场景。
阅读全文