ASP.NET?Core實(shí)現(xiàn)動(dòng)態(tài)獲取文件并下載
ASP.NET Core 中,可以在靜態(tài)目錄添加文件,直接訪問(wèn)就可以下載。但是這種方法可能不安全,也不夠靈活。
我們可以在 Controller 控制器中 添加 一個(gè) Action,通過(guò)此Action,即可訪問(wèn)服務(wù)器的任何文件。
Action 格式
public FileResult Down()
{
return File(xxx,xxx,xxx);
}File() 對(duì)象
問(wèn)題在于這個(gè) File() 對(duì)象,應(yīng)該怎么寫
筆者舉個(gè)例子
在100%無(wú)錯(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");
就這么簡(jiǎn)單。
獲取文件類型
C#獲取文件類型可以參考
http://www.dbjr.com.cn/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ù)庫(kù)查找此文件碼的文件地址
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è)核心即可。
到此這篇關(guān)于ASP.NET Core實(shí)現(xiàn)動(dòng)態(tài)獲取文件并下載的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Asp.net實(shí)現(xiàn)MVC處理文件的上傳下載功能實(shí)例教程
- ASP.NET Core實(shí)現(xiàn)文件上傳和下載
- asp.net實(shí)現(xiàn)多個(gè)文件同時(shí)下載功能
- ASP.NET實(shí)現(xiàn)從服務(wù)器下載文件問(wèn)題處理
- asp.net實(shí)現(xiàn)服務(wù)器文件下載到本地的方法
- ASP.Net下載大文件的實(shí)現(xiàn)方法
- ASP.NET 在下載文件時(shí)對(duì)其重命名的思路及實(shí)現(xiàn)方法
- asp.net中文件下載功能的實(shí)例代碼
- 在ASP.NET中下載文件的實(shí)現(xiàn)代碼
- asp.net 文件下載實(shí)現(xiàn)代碼
- ASP.NET MVC實(shí)現(xiàn)文件下載
相關(guān)文章
頁(yè)面爬蟲(chóng)(獲取其他頁(yè)面HTML)加載到自己頁(yè)面示例
利用頁(yè)面爬蟲(chóng)(獲取其他頁(yè)面HTML)加載到自己頁(yè)面,實(shí)現(xiàn)所謂的小偷程序吧,具體實(shí)現(xiàn)代碼如下,感興趣的朋友可以參考下哈2013-06-06
無(wú)法將函數(shù)定義與現(xiàn)有的聲明匹配 問(wèn)題的解決辦法 分享
無(wú)法將函數(shù)定義與現(xiàn)有的聲明匹配 問(wèn)題的解決辦法 分享,需要的朋友可以參考一下2013-05-05
Asp.Net 5分鐘實(shí)現(xiàn)網(wǎng)頁(yè)實(shí)時(shí)監(jiān)控
在項(xiàng)目開(kāi)發(fā)中經(jīng)常會(huì)用到監(jiān)控功能,下面通過(guò)本篇文章給大家介紹Asp.Net 5分鐘實(shí)現(xiàn)網(wǎng)頁(yè)實(shí)時(shí)監(jiān)控,需要的朋友可以參考下2017-12-12
ASP.NET Core MVC 中實(shí)現(xiàn)中英文切換的示例代碼
這篇文章主要介紹了ASP.NET Core MVC 中實(shí)現(xiàn)中英文切換的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
MVC使用T4模板生成其他類的具體實(shí)現(xiàn)學(xué)習(xí)筆記2
這篇文章主要為大家詳細(xì)介紹了MVC使用T4模板生成其他類的具體實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09
ASP.NET簡(jiǎn)化編輯界面解決思路及實(shí)現(xiàn)代碼(2)
這篇與前一篇改進(jìn)部分,也許大家會(huì)留意到動(dòng)畫演示,主要是GridVeiw的更新與刪除會(huì)在每row都有。因此Insus.NET把它抽取出來(lái),放在GridView外,感興趣的朋友可以了解下啊,希望本文對(duì)你有所幫助2013-01-01

