ASP.NET?Core實現(xiàn)動態(tài)獲取文件并下載
ASP.NET Core 中,可以在靜態(tài)目錄添加文件,直接訪問就可以下載。但是這種方法可能不安全,也不夠靈活。
我們可以在 Controller 控制器中 添加 一個 Action,通過此Action,即可訪問服務器的任何文件。
Action 格式
public FileResult Down()
{
return File(xxx,xxx,xxx);
}File() 對象
問題在于這個 File() 對象,應該怎么寫
筆者舉個例子
在100%無錯的條件下,文件路徑 F:\a.txt
- 1,創(chuàng)建一個文件流 FileStream
- 2,獲取文件類型 Content-Type,可以用代碼獲取,也可以用字符串填寫
- 3,設置文件名
var stream = System.IO.File.OpenRead(“F:\a.txt”); //創(chuàng)建文件流
txt 的文件類型為 text/plain
設置文件名為 b.txt
那么返回的File 代碼如下
return File(stream, "text/plain", “b.txt");
就這么簡單。
獲取文件類型
C#獲取文件類型可以參考
http://www.fzitv.net/article/234584.htm
關于文件類型對應得Context-Type
http://tools.jb51.net/table/http_content_type
筆者附上小方法
//引入 using System.IO; var contentype = MimeMapping.GetMimeMapping(fileName); //獲取文件類型
動態(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");
}編寫方式多種多樣,只需要解決文件流、文件類型、文件名,這三個核心即可。
到此這篇關于ASP.NET Core實現(xiàn)動態(tài)獲取文件并下載的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
ASP.NET Core 1.0 部署 HTTPS(.NET Core 1.0)
這篇文章主要為大家詳細介紹了ASP.NET Core 1.0 部署 HTTPS(.NET Core 1.0),感興趣的小伙伴們可以參考一下2016-07-07
c#將Excel數(shù)據(jù)導入到數(shù)據(jù)庫的實現(xiàn)代碼
這篇文章主要介紹了c#將Excel數(shù)據(jù)導入到數(shù)據(jù)庫的實現(xiàn)代碼,有需要的朋友可以參考一下2013-12-12
uni-app結合.NET?7實現(xiàn)微信小程序訂閱消息推送
本文主要介紹了uni-app結合.NET?7實現(xiàn)微信小程序訂閱消息推送,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-02-02

