zoukankan      html  css  js  c++  java
  • ASP.NET Core 返回文件、用户下载文件,从网站下载文件,动态下载文件

    ASP.NET Core 中,可以在静态目录添加文件,直接访问就可以下载。但是这种方法可能不安全,也不够灵活。

    我们可以在 Controller 控制器中 添加 一个 Action,通过此Action,即可访问服务器的任何文件。


    Action 格式

        public FileResult Down()
            {
            return File(xxx,xxx,xxx);
            }

    返回 FileResult 类型,File() 对象

    就这么简单。


    File() 对象

    问题在于这个 File() 对象,应该怎么写

    笔者举个例子

    在100%无错的条件下,文件路径 F:a.txt

    1,创建一个文件流 FileStream

    2,获取文件类型 Content-Type,可以用代码获取,也可以用字符串填写

    3,设置文件名

    var stream = System.IO.File.OpenRead(“F:a.txt”);  //创建文件流

     txt 的文件类型为 text/plain

     设置文件名为 b.txt

    那么返回的File 代码如下

    return File(stream, "text/plain", “b.txt");

    就这么简单。


    获取文件类型

    C#获取文件类型可以参考

    http://www.cnblogs.com/zzsdream/articles/5796763.html

    关于文件类型对应得Context-Type

    http://tool.oschina.net/commons/

    笔者附上小方法

    //引入
    using System.IO;
    
    var contentype = MimeMapping.GetMimeMapping(fileName);      //获取文件类型

    动态获取文件

     public FileResult DownSH(string DownM)  //要下载文件码
            {
                var path = _sqlContext.jexusSqls.FirstOrDefault(a => a.DownM == DownM.ToString()).FilePath;  //在数据库查找此文件码的文件地址
                if (!System.IO.File.Exists(path)) return null;
    
                var stream = System.IO.File.OpenRead(path);  //创建文件流
    
                return File(stream, "application/x-sh", DownM+".sh");
            }

    编写方式多种多样,只需要解决文件流、文件类型、文件名,这三个核心即可。

  • 相关阅读:
    基础数据类型:列表
    基础数据类型(数字、布尔值、字符串)
    深浅copy
    集合
    逻辑运算
    poj 2287 Tian Ji -- The Horse Racing(贪心)
    hdu 1547 Bubble Shooter(深搜)
    hdu 1242 Rescue
    hdu 1175 连连看(深搜)
    hdu 2298 Toxophily(数学题)
  • 原文地址:https://www.cnblogs.com/whuanle/p/10109653.html
Copyright © 2011-2022 走看看