.Net5 WebApi中下载文件(返回FileStreamResult)
WebApi Code
///
/// 下载文件 LastUpdateDate:2021-07-14 18:25:03.811 Author:Lingbug
///
///
[HttpPost, AllowAnonymous]
public IActionResult DownloadFile()
{
//文件地址
var fileUrl = Request.Form["fileUrl"].ToString();
//校验
if (fileUrl.IsNullOrWhiteSpaceString()) throw new ErpFriendlyException("要下载的文件地址不能为空!");
//文件路径
string filePath = FileUtil.GetFullPath(fileUrl);
//校验
if (!System.IO.File.Exists(filePath)) throw new ErpFriendlyException("要下载的文件不存在!");
//新文件
var copyFile = new SaveFileOutput(Path.GetFileName(filePath), SaveFileOutputFileNameTypeEnum.TimeStamp, "UploadFiles", "DownloadFile", "Copy");
//复制文件
System.IO.File.Copy(filePath, copyFile.FileFullPath, true);
//文件名
var fileName = Request.Form["fileName"].ToString();
//文件名
if (fileName.IsNullOrWhiteSpaceString()) fileName = Path.GetFileName(filePath);
//下载
return new FileStreamResult(new FileStream(copyFile.FileFullPath, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName.TrimStr() };
}
Client Code
@ViewBag.Title