/// <summary> /// 导出文件 /// </summary> /// <param name="filePath">要导出的文件的绝对路径</param> /// <param name="outputName">要输出的文件名称, 含扩展名; 若没有输入,则为指定的文件的文件名</param> public void OutPut(string filePath, string outputName = null) { var fileName = outputName ?? Path.GetFileName(filePath); var fileResult = new FilePathResult(filePath, MimeMapping.GetMimeMapping(fileName)) { FileDownloadName = fileName }; fileResult.ExecuteResult(this.context); }
private void OutputExport(ControllerContext context) { var fileId = context.HttpContext.Request.QueryString["__rdlReport"]; var type = context.HttpContext.Request.QueryString["__rdlType"]; var fileName = context.HttpContext.Request.QueryString["__rdlName"]; var targetFile = Path.Combine(Path.GetTempPath(), fileId + "." + type); if (File.Exists(targetFile)) { var fpr = new FilePathResult(targetFile, "application/octet-stream"); var fn = string.IsNullOrWhiteSpace(fileName) ? $"报表导出({DateTime.Now:yyyyMMddHHmmss})" : fileName; fpr.FileDownloadName = fn + "." + type; fpr.ExecuteResult(context); } else { var cr = new ContentResult { Content = "<script>alert('对不起,请需要下载的文件不存在,请重试!');window.close();</script>" }; cr.ExecuteResult(context); } }