通常后台请求方法返回写法:
FileInfo fileInfo = new FileInfo(temp_file); ----读取文件内容 var ext = fileInfo.Extension; ----读取文件扩展名 new FileExtensionContentTypeProvider().Mappings.TryGetValue(ext, out var contenttype); ----获取文件扩展的MIME类型 return File(System.IO.File.ReadAllBytes(temp_file), contenttype ?? "application/octet-stream", DateTime.Now.ToString("yyyyMMdd") + ".csv"); ----返回文件流
其他写法:
return File(new FileStream(temp_file, FileMode.Open), "application/octet-stream", DateTime.Now.ToString("yyyyMMdd") + ".csv");
前端JS接收:
let params = ''; Object.keys(param).forEach(function (key) { //这里param是一个{ key: value }类型的对象用来记录要传的参数用的 params += key + '=' + data.field[key] + '&'; }); const link = document.createElement('a'); link.href = '/download?' + params; link.download = '导出'; link.click();