Потоковый / байтовый массив для имени файла / расширения / типа содержимого - PullRequest
0 голосов
/ 04 января 2019

Мне нужен тип содержимого (или расширение или имя файла) двоичного файла. Затем передайте метод AspNetCore.Mvc.ControllerBase.File

byte[] result = Repository.GetFile(Id);
if (result == null)
{
    return NotFound();
}
Stream stream = new MemoryStream(result);
return File(stream , "application/pdf");

Код отлично работает только для PDF-файлов. К сожалению, мои файлы имеют различные расширения.

1 Ответ

0 голосов
/ 04 января 2019

Если вы знаете расширение, вы, вероятно, можете получить тип MIME из этого. В ASP.NET Core на самом деле есть что-то встроенное в промежуточное ПО Static Files, которое вы можете использовать:

var provider = new FileExtensionContentTypeProvider();
var contentType = provider.TryGetContentType(fileName, out var type)
    ? type
    : "application/octet-stream";

return File(stream, contentType);

Кроме этого, Дэмиен прав в комментариях, вы не можете определить тип пантомимы из одних байтов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...