日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

ASP.NET?Core實(shí)現(xiàn)動(dòng)態(tài)獲取文件并下載_實(shí)用技巧

作者:癡者工良 ? 更新時(shí)間: 2022-03-29 編程語言

ASP.NET Core 中,可以在靜態(tài)目錄添加文件,直接訪問就可以下載。但是這種方法可能不安全,也不夠靈活。

我們可以在 Controller 控制器中 添加 一個(gè) Action,通過此Action,即可訪問服務(wù)器的任何文件。

Action 格式

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

File() 對(duì)象

問題在于這個(gè) File() 對(duì)象,應(yīng)該怎么寫

筆者舉個(gè)例子

在100%無錯(cuò)的條件下,文件路徑 F:\a.txt

  • 1,創(chuàng)建一個(gè)文件流 FileStream
  • 2,獲取文件類型 Content-Type,可以用代碼獲取,也可以用字符串填寫
  • 3,設(shè)置文件名
var stream = System.IO.File.OpenRead(“F:\a.txt”);  //創(chuàng)建文件流

txt 的文件類型為?text/plain

設(shè)置文件名為 b.txt

那么返回的File 代碼如下

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

就這么簡單。

獲取文件類型

C#獲取文件類型可以參考

https://www.jb51.net/article/234584.htm

關(guān)于文件類型對(duì)應(yīng)得Context-Type

http://tools.jb51.net/table/http_content_type

筆者附上小方法

//引入
using System.IO;

var contentype = MimeMapping.GetMimeMapping(fileName);      //獲取文件類型

動(dòng)態(tài)獲取文件

 public FileResult DownSH(string DownM)  //要下載文件碼
        {
            var path = _sqlContext.jexusSqls.FirstOrDefault(a => a.DownM == DownM.ToString()).FilePath;  //在數(shù)據(jù)庫查找此文件碼的文件地址
            if (!System.IO.File.Exists(path)) return null;

            var stream = System.IO.File.OpenRead(path);  //創(chuàng)建文件流

            return File(stream, "application/x-sh", DownM+".sh");
        }

編寫方式多種多樣,只需要解決文件流、文件類型、文件名,這三個(gè)核心即可。

原文鏈接:https://www.cnblogs.com/whuanle/p/10109653.html

欄目分類
最近更新