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

學無先后,達者為師

網站首頁 編程語言 正文

ASP.NET?Core實現動態獲取文件并下載_實用技巧

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

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

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

Action 格式

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

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#獲取文件類型可以參考

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

關于文件類型對應得Context-Type

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

筆者附上小方法

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

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

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

欄目分類
最近更新