在ASP.NET Core中,可以使用PhysicalFileResult
来替代HttpResponse.TransmitFile
方法。以下是一个示例代码:
public IActionResult DownloadFile()
{
string filePath = "path/to/file.pdf"; // 替换为实际文件路径
var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
var fileInfo = new FileInfo(filePath);
return new PhysicalFileResult(fileStream, "application/octet-stream")
{
FileDownloadName = fileInfo.Name
};
}
在上面的示例中,我们首先从文件路径创建一个FileStream
对象,并使用FileInfo
获取文件信息。然后,我们使用PhysicalFileResult
来返回文件流。
PhysicalFileResult
将自动设置适当的响应头,以便浏览器能够正确处理下载文件。FileDownloadName
属性设置下载时显示的文件名。
请确保将"path/to/file.pdf"
替换为实际文件的路径。