昨天说了,AspNetCore如何进行上传文件,其中写了两种方式ajax与模型,其文章地址为:https://www.cnblogs.com/ZaraNet/p/9949167.html
那么既然有上传文件就一定有下载文件,那么我们常用的下载方式有什么呢 流、
代码如下:
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你是访问不到的呢!!