netcore webapi提供下载文件接口示例代码
时间: 2023-07-28 10:10:48 浏览: 53
在 .NET Core Web API 中,可以通过创建一个接口来提供文件下载功能。以下是一个示例代码:
```csharp
[HttpGet("download")]
public async Task<IActionResult> DownloadFile()
{
// 获取要下载的文件路径
string filePath = @"C:\example.txt";
// 判断文件是否存在
if (File.Exists(filePath))
{
// 获取文件名和扩展名
string fileName = Path.GetFileName(filePath);
string fileExt = Path.GetExtension(filePath);
// 获取 MIME 类型
string mimeType = MimeTypesMap.GetMimeType(fileExt);
// 读取文件内容
byte[] fileBytes = await File.ReadAllBytesAsync(filePath);
// 返回文件内容
return File(fileBytes, mimeType, fileName);
}
else
{
// 文件不存在,返回 404 错误
return NotFound();
}
}
```
在这个示例代码中,我们首先定义了一个接口 [HttpGet("download")],用于提供文件下载功能。然后,获取要下载的文件路径 filePath,并使用 File.Exists() 方法判断该文件是否存在。如果文件存在,继续执行以下步骤:
- 使用 Path.GetFileName() 和 Path.GetExtension() 方法获取文件名和扩展名。
- 使用 MimeTypesMap.GetMimeType() 方法获取文件的 MIME 类型。
- 使用 File.ReadAllBytesAsync() 方法读取文件内容,并将文件内容作为参数,使用 File() 方法返回文件内容。其中,第一个参数是文件内容的 byte[] 数组,第二个参数是文件的 MIME 类型,第三个参数是文件名。
如果文件不存在,使用 NotFound() 方法返回 404 错误。
需要注意的是,需要在代码中引用 System.IO 和 MimeTypes.Core 命名空间。
相关推荐
![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)