Exemple #1
0
        /// <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);
        }
Exemple #2
0
        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);
            }
        }