Open pdf in new tab
From Logic Wiki
[Route("resource/{resourceId}")]
public async Task<IActionResult> Resource(long resourceId)
{
var directory = _configuration.GetSection("AppSettings")["MediaStorage"];
Resource resource = null;
if (resourceId != 0)
{
resource = await _proxy.Get<Resource>($"api/cms/resource/get/{resourceId}");
}
if (resource == null || string.IsNullOrWhiteSpace(resource.FilePath))
{
return null;
}
var resourcePath = string.Empty;
resourcePath = $"resources\\{resource.ApplicationId}\\{resource.FilePath}";
var path = Path.Combine(directory, resourcePath);
var extension = Path.GetExtension(path);
var mimeType = MimeTypeMap.GetMimeType(extension);
if (extension == ".pdf")
{
var cd = new System.Net.Mime.ContentDisposition
{
FileName = Path.GetFileName(path),
Inline = true,
};
Response.Headers.Add("Content-Disposition", cd.ToString());
Response.ContentType = "application/pdf";
// FileStream stream = new FileStream(Path.GetFileName(path), FileMode.Open, FileAccess.Read);
Response.Headers.Add("X-Content-Type-Options", "nosniff");
return File(System.IO.File.ReadAllBytes(path), "application/pdf");
}
return PhysicalFile(path, mimeType, $"{resource.Title}.{extension}");
}