AspNetCore 基於流下載檔案與示例程式碼
阿新 • • 發佈:2018-12-27
那麼既然有上傳檔案就一定有下載檔案,那麼我們常用的下載方式有什麼呢 流、
程式碼如下:
public IActionResult DownLoad(string file) { var addrUrl = file; var stream = System.IO.File.OpenRead(addrUrl); string fileExt = GetFileExt(file); //獲取檔案的ContentType var provider = new FileExtensionContentTypeProvider(); var memi = provider.Mappings[fileExt]; return File(stream, memi, Path.GetFileName(addrUrl)); }
這裡值得注意的是,以前我們想獲取ContentType直接使用MimeMapping.GetMimeMapping(file);就好了.
但是這個類是在System.Web下的,core已經拋棄了現有的System.Web.
所以在ASP.NET Core中我們需要通過新的類FileExtensionContentTypeProvider來獲取檔案的ContentType
前端:
<input type="text" id="filename" /><button onclick="downLoad()">下載</button></div> function downLoad()
{
var filename = $("#filename").val(); window.location.href = "@Url.Action("DownLoad")?file=" + filename; }
其中需要的是,這種返回流的方式都是get方式的。post你是訪問不到的呢!!