[HttpPost] public FileResult ExportReport([FromForm] string report_name, [FromForm] string exporttype) { var _m_report_name = report_name; var _content_type = "application/octet-stream"; var _report_name = _m_report_name + @".rdl"; var _report_path_name = @"~/UserContent/Reports/" + _report_name; var writerFormat = exporttype; if (null == exporttype) { writerFormat = "PDF"; _content_type = "application/pdf"; } if (String.Empty == exporttype) { writerFormat = "PDF"; _content_type = "application/pdf"; } var _server_root = ((IHostingEnvironment)HttpContext.RequestServices.GetService(typeof(IHostingEnvironment)));// EQ to .MapPath(_report_path_name); var _report_mapped_path = _server_root.MapPath(_report_path_name); if (!System.IO.File.Exists(_report_mapped_path)) { return null; } var fileName = String.Empty; WriterFormat format; using (var reportWriter = new ReportWriter(_report_mapped_path)) { //reportWriter.ReportProcessingMode = ProcessingMode.Local; reportWriter.ReportProcessingMode = ProcessingMode.Remote; var _file_ext = ".xls"; format = WriterFormat.Excel; if (writerFormat == "PDF") { _file_ext = ".pdf"; format = WriterFormat.PDF; _content_type = "application/pdf"; } else if (writerFormat == "Word") { _file_ext = ".doc"; format = WriterFormat.Word; } else { _file_ext = ".xls"; format = WriterFormat.Excel; } fileName = String.Concat(_m_report_name, DateTime.Now.Date.ToString("_yyyyMMdd"), _file_ext); var _temp_file = Path.Combine(_server_root.MapPath("~/App_Data"), fileName);//path is mapped correctly var _test_file = Path.Combine(_server_root.MapPath("~/App_Data"), "test.txt"); try { if (System.IO.File.Exists(_temp_file)) { System.IO.File.Delete(_temp_file); } using (FileStream _temp_file_fs = System.IO.File.Create(_test_file)) { using (StreamWriter writer = new StreamWriter(_temp_file_fs)) { writer.WriteLine("Example 1 written"); //No problem here } } //Create the file. using (FileStream _temp_file_fs = System.IO.File.Create(_temp_file)) { reportWriter.Save(_temp_file_fs, format); //0 byte file created
} var response = File(_temp_file, _content_type);// // error file not found to client return response; } catch (Exception Ex) { return null; } } }
|
var _server_root = ((IHostingEnvironment)HttpContext.RequestServices.GetService(typeof(IHostingEnvironment)));// EQ to .MapPath(_report_path_name);
var _report_mapped_path = _server_root.MapPath(_report_path_name);
FileStream inputStream = new FileStream(_report_mapped_path, FileMode.Open, FileAccess.Read);
if (!System.IO.File.Exists(_report_mapped_path))
{
return null;
}
var fileName = String.Empty;
WriterFormat format;
using (var reportWriter = new ReportWriter(inputStream))
{ |