1. 程式人生 > >AspNetCore 基於流下載檔案與示例程式碼

AspNetCore 基於流下載檔案與示例程式碼

那麼既然有上傳檔案就一定有下載檔案,那麼我們常用的下載方式有什麼呢   流、

程式碼如下:

   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你是訪問不到的呢!!