用C#生成一個下載服務器文件的API接口
时间: 2024-02-02 20:04:51 浏览: 63
好的,以下是一个使用 C# 生成的下载服务器文件的 API 接口的示例代码:
```csharp
[HttpGet]
public HttpResponseMessage DownloadFile(string fileName)
{
// 获取文件路径
string filePath = Path.Combine(HttpContext.Current.Server.MapPath("~/App_Data/"), fileName);
// 检查文件是否存在
if (!File.Exists(filePath))
{
return Request.CreateErrorResponse(HttpStatusCode.NotFound, "文件不存在");
}
// 创建一个 HttpResponseMessage 对象
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
// 读取文件流
FileStream fileStream = new FileStream(filePath, FileMode.Open);
// 将文件流写入到 HttpResponseMessage 中
response.Content = new StreamContent(fileStream);
// 设置文件的 MIME 类型
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
// 设置文件名
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
response.Content.Headers.ContentDisposition.FileName = fileName;
return response;
}
```
这个接口使用了 HTTP GET 请求,并接受一个名为 `fileName` 的参数,用于指定要下载的文件名。它的实现过程如下:
1. 获取文件路径。
2. 检查文件是否存在,如果不存在则返回一个 HTTP 404 错误。
3. 创建一个 HttpResponseMessage 对象,用于构建 HTTP 响应。
4. 读取文件流,并将文件流写入到 HttpResponseMessage 对象中。
5. 设置文件的 MIME 类型为 `application/octet-stream`。
6. 设置文件名为要下载的文件名。
你可以根据自己的需求修改代码中的路径和文件类型。
阅读全文