通常后台請求方法返回寫法:
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();