1.asp.net api 下载文件
[HttpGet] public HttpResponseMessage DownFile(string fileName) { try { string filefullPath = Path.Combine(System.Web.HttpContext.Current.Request.PhysicalApplicationPath, "TempFile"); string filePath = Path.Combine(filefullPath, $"{fileName}"); if(File.Exists(filePath)) { FileStream fileStream = new FileStream(filePath, FileMode.Open); HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK); response.Content = new StreamContent(fileStream); response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = fileName }; return response; } else { return new HttpResponseMessage(HttpStatusCode.NoContent); } } catch (Exception ex) { return new HttpResponseMessage(HttpStatusCode.NoContent); } }
2. .net 5.0 下载文件
1.首先在控制器中注入IHostingEnvironment
private readonly IHostingEnvironment _hostingEnvironment; public UploadController(IHostingEnvironment hostingEnvironment) { _hostingEnvironment = hostingEnvironment; }
2.添加下载方法
[HttpGet] [AllowAnonymous] public IActionResult DownFile(string fileName) { try { string webRootPath = _hostingEnvironment.WebRootPath; string contentRootPath = _hostingEnvironment.ContentRootPath; string filefullPath = Path.Combine(contentRootPath, "TempFile"); string filePath = Path.Combine(contentRootPath, "TempFile", $"{fileName}"); FileStream fileStream = new FileStream(filePath, FileMode.Open); return File(fileStream, "application/octet-stream", $"{fileName}"); } catch (Exception ex) { return new JsonResult(new ResultData<string> { Code = 1, Message = $"Failed to download file : {ex.Message}", Data = $"{fileName}" }); } }