Как преобразовать байтовый массив в соответствующий формат файла в ASP.NET MVC - PullRequest
1 голос
/ 22 сентября 2010

У меня есть система, которая должна конвертировать байтовый массив (не зная предоставленный мне его pdf, txt или doc) в загружаемый файл.Теперь обычно в ASP.NET MVC я бы делал это следующим образом.

return File(labTestResult.File, "application/pdf");

Это легко, потому что я знаю, что это за тип файла.Теперь, когда тип файла может быть любым, есть ли способ загрузить файл в соответствующий формат?

Ответы [ 2 ]

2 голосов
/ 22 сентября 2010

Asp.net MVC очень расширяемый, поэтому, если вам нужно отправить что-то по-другому в ответе, вы можете сделать это, например, вы можете написать ActionResult для обслуживания вашего файла без указания типа mime, но это действительно не рекомендуется.

Используйте решение в этом вопросе , чтобы получить тип mime из первых байтов.

Если вы хотите, вы также можете определить результат настраиваемого действия, который использует этот код, поэтому код вашего контроллера становится: return AutoMimeFile(labTestResult.File);

1 голос
/ 22 сентября 2010

Я не уверен, что есть действительно хороший способ сделать это. Некоторые форматы файлов имеют "магические числа", которые вы можете проверить для Look Here для получения дополнительной информации об этом. Я никогда не пробовал это сам, поэтому я не могу поручиться за то, насколько надежной была бы такая реализация. Я полагаю, что лучшим способом было бы получить информацию о типе файла с данными.

...