asp.net api 下载文件与.net 5.0 下载文件

2022/6/5 1:21:54

本文主要是介绍asp.net api 下载文件与.net 5.0 下载文件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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.添加下载方法

        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}" });
            }
        }

 



这篇关于asp.net api 下载文件与.net 5.0 下载文件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程