C# Web API 如何实现文件下载:HttpResponseMessage 示例
Web API 的 HttpResponseMessage 对象主要用于返回 HTTP 响应,包括响应的内容、状态码和头部信息等。它并不直接提供文件下载的功能,但我们可以通过设置响应的内容类型和头部信息来实现文件下载的效果。以下是一个示例:
public HttpResponseMessage DownloadFile()
{
// 获取要下载的文件路径
string filePath = 'C:\path\to\file.pdf';
// 创建 HttpResponseMessage 对象
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
// 读取文件内容
byte[] fileBytes = File.ReadAllBytes(filePath);
// 设置响应的内容
response.Content = new ByteArrayContent(fileBytes);
// 设置响应的内容类型
response.Content.Headers.ContentType = new MediaTypeHeaderValue('application/octet-stream');
// 设置响应的头部信息,指定文件名和文件的保存方式
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue('attachment')
{
FileName = 'file.pdf',
Size = fileBytes.Length
};
return response;
}
在上述示例中,我们首先获取要下载的文件路径,然后创建一个 HttpResponseMessage 对象,并将文件内容设置为响应的内容。接着,我们设置响应的内容类型为 'application/octet-stream',表示通用的二进制流。最后,我们设置响应的头部信息,指定文件名为 'file.pdf',并设置文件的保存方式为 'attachment',表示文件将作为附件下载。
使用上述示例中的方法,在 Web API 中调用该方法时,将返回一个 HttpResponseMessage 对象,包含文件的内容和头部信息,浏览器会将其识别为文件下载,并将文件保存到本地。
原文地址: https://www.cveoy.top/t/topic/qpLO 著作权归作者所有。请勿转载和采集!