首页 > 编程语言 >C# 下载文件 (ASP.NET Core Web API )

C# 下载文件 (ASP.NET Core Web API )

时间:2024-01-17 16:24:50浏览次数:29  
标签:Files Web ASP string Core filePath using hostingEnvironment Microsoft

using Microsoft.AspNetCore.Mvc;
using System.IO;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Authorization;
using Microsoft.Extensions.Logging;
using Microsoft.AspNetCore.StaticFiles;
using System.Threading.Tasks;

namespace FCore.Saas.SCM.WebAPI.Areas.Files
{
    public class FilesController : BaseController
    {
        private readonly IHostingEnvironment _hostingEnvironment;
        private readonly ILogger<FilesController> _logger;
        public FilesController(IHostingEnvironment hostingEnvironment, ILogger<FilesController> logger)
        {
            _hostingEnvironment = hostingEnvironment;
            _logger = logger;
        }

        [HttpPost, HttpGet, AllowAnonymous]
        public async Task<IActionResult> DownloadFile(string businessDirectoryName, string fileFullName)
        {
            string filePath = _hostingEnvironment.ContentRootPath + "\\Files\\Upload\\" + businessDirectoryName + "\\" + fileFullName;
            if (!System.IO.File.Exists(filePath))
            {
                return LocalRedirect("/Files/NotFind");
            }
            var memory = new MemoryStream();
            using (var stream = new FileStream(filePath, FileMode.Open))
            {
                await stream.CopyToAsync(memory);
            }
            memory.Position = 0;
            return File(memory, GetContentType(filePath), Path.GetFileName(filePath));
        }

        private string GetContentType(string path)
        {
            var provider = new FileExtensionContentTypeProvider();
            string contentType;
            if (!provider.TryGetContentType(path, out contentType))
            {
                contentType = "application/octet-stream";
            }
            return contentType;
        }
    }
}

 文件:

 请求地址

https://localhost:44359/api/Files/Files/DownloadFile?businessDirectoryName=DownloadTemplate&fileFullName=SaasSCM批量新增商品模板.xlsx

标签:Files,Web,ASP,string,Core,filePath,using,hostingEnvironment,Microsoft
From: https://www.cnblogs.com/nanxixi/p/17970289

相关文章

  • Webpack构建基础配置
    通过webpack.config.js文件进行配置项编写与Vite不同,webpack配置文件只需要暴露一个对象即可,包含entry,output,module,plugin,devServer等基本配置项entry打包后的入口文件entry:path.join(__dirname,'./scr/main.js')output配置打包后文件输出的文件夹地址和出口文件名outp......
  • 在 SAP Web IDE 个人版中根据模板创建项目时,选择 OData 服务时出现catalog service is
     1.NOTE2684697 ,重点是点2点5的问题 2.去掉CatalogServiceVersion2的系统别名(包括LOCAL)翻阅其他博客,有人说是因为系统别名,我给去掉了。 ......
  • C# websocket服务端实现
    1、创建一个winform项目2、创建websocket服务端类WebSocket_Service.cs1usingSystem;2usingSystem.Collections.Generic;3usingSystem.ComponentModel;4usingSystem.Linq;5usingSystem.Net;6usingSystem.Net.Sockets;7usingSystem.Security......
  • RaspberryPi(树莓派)安装操作系统
    访问网站:RaspberryPiOS–RaspberryPi 下载RaspberryPiImager管理器。  保存到本地后进行安装。运行程序选择你的树莓派类型,然后选择需要安装的操作系统。安装操作系统然后单击下一步安装操作系统。RaspberryPi(树莓派)安装操作系统安装完成当安装完成后把SD卡从卡槽中......
  • RaspberryPi(树莓派)安装操作系统时默认启用 SSH
    如果对RaspberryPi(树莓派)安装操作系统的时候不做任何修改的话默认是不用SSH的。单击编辑设置。配置SSH在当前的界面中,选择启用SSH。  那么在安装完成RaspberryPi(树莓派)后的SSH是自动启动服务的。 ......
  • webshell流量特征
    WebShell攻击者为了达到控制服务器的目的,通常会想办法将网站可解析的文件写入服务器web目录下。例如在ASP架构的网站写入ASP脚本,在PHP架构网站写入PHP脚本,在Java架构的网站写入jsp脚本等。这种被攻击者写入并能够成功执行的脚本,叫WebShell,也叫网页后门。获取WebShell的过程也被......
  • ASP.NET Core 中AOP(面向切面编程)的支持方式
    在ASP.NETCore中,AOP(面向切面编程)的支持可以通过以下方式实现:过滤器(Filters):ASP.NETCore提供了多种类型的过滤器:身份验证过滤器(AuthenticationFilters):用于验证用户身份。例如,[Authorize] 属性可以应用在控制器或动作方法上,确保只有经过身份验证的用户才能访问。授权......
  • .net core 中什么是中间件
    在.NETCore中,中间件(Middleware)是ASP.NETCore应用程序处理请求和响应的组件。中间件位于应用程序的请求处理管道中,它可以截获请求,执行一些逻辑,并将请求传递给下一个中间件或终止请求的执行。中间件的主要作用是实现横切关注点,处理跨请求的功能和任务,例如身份验证、异常处理......
  • 基于javaweb的吃了吗管理系统
    随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了吃了吗管理系统的开发全过程。通过分析吃了吗管理系统管理的不足,创建了一个计算机管理吃了吗管理系统的方案。文章介绍了吃了吗管理系统的系统分析部分,包括可行性分析等,系统设计部分主......
  • 基于WEB的开放性实验室管理系统
    现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本开放性实验室管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事......